繁体   English   中英

如何在PHP中将日期时间从UTC转换为UTC + 01(也在Asia / Calcutta中)

[英]how to convert date time from UTC to UTC+01 (also in Asia/Calcutta) in PHP

我想将日期时间从UTC时区转换为UTC + 01之类的任何时区,也要将时区名称(例如Asia / Calcutta)转换为UTC。

我怎样才能做到这一点?

这是我的代码

<?php
date_default_timezone_set("UTC");
$date = new DateTime(date("Y-m-d H:i:s"));
$date->setTimezone(new DateTimeZone('UTC+01')); 
echo $date->format('Y-m-d H:i:s'); 
?>

我收到以下错误:

Fatal error: Uncaught exception 'Exception' with message 'DateTimeZone::__construct(): Unknown or bad timezone (UTC+01)' in /var/www/html/test/index.php:6 Stack trace: #0 /var/www/html/test/index.php(6): DateTimeZone->__construct('UTC+01') #1 {main} thrown in /var/www/html/test/index.php on line 6 

您必须使用有效的时区。 除了使用UTC+1 (无效),您还可以使用CET (欧洲中部时间)或Europe/Berlin (两者均取决于夏季/冬季时间),在某些国家/地区中,该时区在全年都有效( UTC + 1:00 ),对于加尔各答,您可以使用Asia/Calcutta

例子:

  • $date->setTimezone( new DateTimeZone( 'Asia/Calcutta' ) );
  • $date->setTimezone( new DateTimeZone( 'CET' ) );
  • $date->setTimezone( new DateTimeZone( 'Europe/Berlin' ) );

在docs上 ,您可以找到具有有效DateTimeZone值的列表。

更新:就像@Marc B的评论中提到的那样 @deceze您可以使用

$date = new DateTime();

而不是使用

$date = new DateTime(date("Y-m-d H:i:s"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM