Skip to main content

Handling timezone conversion with PHP DateTime

Handling timezone conversion with PHP DateTime

Create function

function convert_to_server_datetime($date, $userTimeZone = 'America/Los_Angeles', $serverTimeZone = 'UTC')
{
    try {
        $dateTime = new DateTime ($date, new DateTimeZone($userTimeZone));
        $dateTime->setTimezone(new DateTimeZone($serverTimeZone));
        return $dateTime->format("Y-m-d H:i:s");
    } catch (Exception $e) {
        return '';
    }
}

Example:

$userDate = '2019-04-19 13:20:00';

echo convert_to_server_datetime($userDate);

Other Method

public function convert($clienttimezone = null, $servertimezone = null){
$clientz=timezone_open("$clienttimezone");
$serverdateTime=date_create("now",timezone_open("$servertimezone"));
$offset1 = timezone_offset_get($clientz,$serverdateTime);
$servertz=timezone_open("$servertimezone");
$clientdateTime=date_create("now",timezone_open("$clienttimezone"));
$offset2 = timezone_offset_get($servertz,$clientdateTime);
if(($offset1 > 0 && $offset2 < 0) || ($offset1 < 0 && $offset2 < 0) || ($offset1 < 0 && $offset2 > 0)){
$offset = $offset1 -($offset2);
}else {
$offset = $offset1 +($offset2);
}
return $offset;
//return sprintf( "%s%02d:%02d", ( $offset >= 0 ) ? '+' : '-', abs( $offset / 3600 ), date("i",abs( $offset % 3600 )) );
}

Example
$clienttimezone = "Europe/Paris";
$servertimezone = date_default_timezone_get();

$timediff =  convert($clienttimezone,$servertimezone);
$transfer_date = '2019-04-20 20:04:05';

echo date('d M Y, h:i a',strtotime($transfer_date)+$timediff);

Comments

Popular posts from this blog

Generate XML file in Cakephp

Steps to Generate XML file using CakePHP: Step-1 Enable to parse xml extension in config route.php file.     Router::parseExtensions('xml'); Step-2 Add Request Handler Component to the Controller    var $components = array(‘RequestHandler’); Step-3 Add controller Action For XML Generation in Post Controller     function generateXMLFile()     {         if ($this->RequestHandler->isXml()) { // check request type             $this->layout = 'empty'; // create an empty layout in app/views/layouts/empty.ctp              }        }  Add header code in empty layout <?php header('Content-type: text/xml');?> <?php echo $this->Xml->header(); ?> <?php echo $content_for_layout; ?> Step-4 Set up View To generate XML Create xml folder inside Posts vi...

How To Create Shortcodes In WordPress

We can create own shortcode by using its predified hooks add_shortcode( 'hello-world', 'techsudhir_hello_world_shortcode' ); 1. Write the Shortcode Function Write a function with a unique name, which will execute the code you’d like the shortcode to trigger: function techsudhir_hello_world_shortcode() {    return 'Hello world!'; } Example: [hello-world] If we were to use this function normally, it would return Hello world! as a string 2. Shortcode function with parameters function techsudhir_hello_world_shortcode( $atts ) {    $a = shortcode_atts( array(       'name' => 'world'    ), $atts );    return 'Hello ' . $a['name'] . !'; } Example: [hello-world name="Sudhir"] You can also call shortcode function in PHP using do_shortcode function Example: do_shortcode('[hello-world]');

How to replace plain URLs with links

Here we will explain how to replace Urls with links from string Using PHP $string ='Rajiv Uttamchandani is an astrophysicist, human rights activist, and entrepreneur. Academy, a nonprofit organization dedicated to providing a robust technology-centered education program for refugee and displaced youth around the world.  CNN Interview - https://www.youtube.com/watch?v=EtTwGke6Jtg   CNN Interview - https://www.youtube.com/watch?v=g7pRTAppsCc&feature=youtu.be'; $string = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.%-=#]*(\?\S+)?)?)?)@', '<a href="$1">$1</a>', $string); Using Javascript <script> function linkify(inputText) {     var replacedText, replacePattern1, replacePattern2, replacePattern3;     //URLs starting with http://, https://, or ftp://     replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;     replacedText = inputT...