如何改变(美国/芝加哥)时间进入印度(亚洲/加尔各答)的时间

时间:2016-10-07 05:40:59

标签: php timezone

$DOMAIN< - 变量获取数据库的日期/时间。 $row['created']和时区$row['created'] have time like 2016-10-07 01:31:42 .。 所以我想根据印度时区显示时间。我使用下面显示的代码,但无法正常工作。

(America/Chicago)

4 个答案:

答案 0 :(得分:2)

尝试使用此代码保存为印度时间。

<?php
    $date=date_create('2016-10-07 01:26:56',timezone_open("America/Chicago"));
    echo date_format($date,"Y-m-d H:i:sP")."<br>";

    date_timezone_set($date,timezone_open("Asia/Kolkata"));
    $indiatime = date_format($date,"Y-m-d H:i:sP") . "<br>";
    echo $indiatime ;
?>

答案 1 :(得分:1)

试试这个,使用timezone_open和date_format

$timestamp = "2016-10-07 01:31:42";
$date = date_create($timestamp, timezone_open('Asia/Kolkata'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";  //echo 2016-10-07 01:31:42+05:30

$timestamp = "2016-10-07 01:31:42";
$user_tz = 'Asia/Kolkata';    
echo $timestamp. "\n"; // echo 2016-10-07 01:31:42

$schedule_date = new DateTime($timestamp, new DateTimeZone($user_tz) );
$schedule_date->setTimeZone(new DateTimeZone('UTC'));
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn; // echo 2016-10-06 20:01:42

DEMO

答案 2 :(得分:1)

您可以使用DateTime类。看看这个DateTime doc example

$date = new DateTime($row['created'], new DateTimeZone('America/Chicago'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Asia/Kolkata'));
echo $date->format('Y-m-d H:i:sP') . "\n";

这可以让你在时区之间跳转。

答案 3 :(得分:1)

如果您使用的是mysql,也可以这样做:

SELECT CONVERT_TZ(created,'America/Chicago','Asia/Kolkata');

当您从数据库中获取数据时,不是在php中编码,而是使用以下查询:select field1,field2,created from <tablename> where <yourCondition>。而不是doinf这样更新您的查询:

select field1,field2,CONVERT_TZ(created,'America/Chicago','Asia/Kolkata') from <tablename> where <yourCondition>