如何将 GMT 时间转换为 IST?

Posted

技术标签:

【中文标题】如何将 GMT 时间转换为 IST?【英文标题】:How to convert GMT time to IST? 【发布时间】:2018-08-16 10:19:32 【问题描述】:

这里我得到的格林威治标准时间如下。

1520489880

现在我得到了这个

$myfinaldate = gmdate("d M H:i", $strtoDate);

所以它会返回给我GMT time。现在我想将其转换为 IST(印度标准时间)。

我尝试时卡在哪里

//Set timezone to india
date_default_timezone_set('Asia/Kolkata');
echo date('Y-m-d H:i:s');  

但这会返回我当前时间而不是我进入strtotime的时间

【问题讨论】:

你看到这个答案了吗? ***.com/questions/13216185/php-converting-gmt-to-ist 是的,显然.. 见我更新的问题。 @Sorak 的回答现在应该可以解决您的问题 【参考方案1】:

你需要传递时间戳

date_default_timezone_set('Asia/Kolkata');
echo date('d M H:i', $strToDate); // where $strToDate is 1520489880

将产生以下值:

08 Mar 11:48

【讨论】:

所以不用gmdate("d M H:i", $strtoDate) ?? 当然,它们是一样的 也许它不一样@sorak。 date 是返回的时间是您的时区。 gmdate 是返回的时间是格林威治标准时间 (GMT)。 哦,我指的是变量的使用。是的,您需要将时区设置为加尔各答,而 gmdate 隐式设置不正确。【参考方案2】:

您可以使用以下方式将 GMT 时间转换为 IST 时间:

1.

echo date('Y-m-d H:i:s',strtotime('+330 minutes', 0));

2.

date_default_timezone_set('Asia/Kolkata');
echo date('Y-m-d H:i:s');

【讨论】:

【参考方案3】:

更改默认时区并不是一个好主意。使用DateTime 类,你再也不用担心默认时区了...

$dt = new DateTime("@$strToDate");
$dt->setTimezone(new DateTimezone('Asia/Kolkata'));
echo $dt->format('Y-m-d H:i:s');

demo

【讨论】:

以上是关于如何将 GMT 时间转换为 IST?的主要内容,如果未能解决你的问题,请参考以下文章

Epoch_time_conversion_issue

无法使用 Java 8 将给定的本地日期转换为 GMT 日期 [重复]

如何在Java中将PST转换为GMT(-0800)?

在 Angular 2 中将时间 hh:mm:ss 转换为 GMT 时间格式

如何将 UTC 转换为 IST 时间格式 [重复]

如何使用 JS 将 GMT 日期时间转换为 GMT Unix TimeStamp?