PHP重新格式化日期不关心时区



我有来自不同的时区的客户

示例:星期一03 00:50:15 CST 2017

实际上,我不在乎他们的时区,我只需要在应用程序中打印的时间,所以我的应用程序端的打印输出必须是: 2017-04-04-03 00:50:10:15

如何在我的应用程序中设置给定日期而不关注其时区或我本地服务器时区或不需要设置 date_default_timezone_set ?是否有PHP功能可以执行此操作?

我想避免尽可能多地使用字符串操纵。

预先感谢您。

br//g

好吧,对于所有与时间相关的操作,PHP期望您设置default时区(否则会发出警告(。但是,我认为您只是在寻找格式化操作。

<?php
date_default_timezone_set("UTC");
$source = "Mon Apr 03 00:50:15 CST 2017";
$dateOb = new DateTime($source);
print_r($dateOb);
echo $dateOb->format("Y-m-d H:i:s");

输出:

DateTime Object
(
    [date] => 2017-04-03 00:50:15.000000
    [timezone_type] => 2
    [timezone] => CST
)
2017-04-03 00:50:15

如果您只想格式化日期,则可以使用date_format

$date=date_create("Mon Apr 03 00:50:15 CST 2017");
echo date_format($date,"Y-m-d H:i:s");

您需要通过使用date_default_timezone_set('parameter');设置时区标识符来设置所需的时区以由所有日期/时间函数使用。在http://php.net/manual/en/timezones.php上查找支持时区的列表。然后使用date_default_timezone_get();获取给定的时区

<?php
date_default_timezone_set('Asia/Manila'); 
date_default_timezone_get(); 
echo date('Y-m-d H:i:s') ;
?>

相关内容

  • 没有找到相关文章

最新更新