PHP-如何重新格式化ISO 8601日期字符串到用户定义的时区



我以这种格式提供了日期/时间:2012-10-14T06:00

我可以像这样刷新数据:6:00 AM使用

<?php
function formatDate($date, $format){
    $output = date($format, strtotime($date));
    return $output;
}
?>
<?php echo formatDate('2012-10-14T06:00', 'g:ia'); ?>

输出:6:00 AM

这很棒,但是如何使用

调整偏移量

date_default_timezone_set('America/LOS_ANGELES');

date_default_timezone_set('欧洲/阿姆斯特丹);

设置给用户时区(无论他们选择什么) - 应该在原始时区数据和提供的用户('欧洲/阿姆斯特丹)

之间抵消时间。

因此,如果他们将默认时区设置为另一个国家,那么时间将读取8:00 am或4:00 am,具体取决于该时区的偏移。

基本时区将始终在xxxx-xx-xxtxx中:xx格式。

任何帮助都将不胜感激

使用DateTime对象。手动提取偏移不会考虑白天的节省和其他怪癖。

// use the the appropriate timezone for your stamp
$timestamp = DateTime::createFromFormat('Y-m-dTH:i', '2012-10-14T06:00', new DateTimeZone('UTC'));
// set it to whatever you want to convert it
$timestamp->setTimeZone(new DateTimeZone('Europe/Amsterdam'));
print $timestamp->format('Y-m-d H:i:s');

相关内容

  • 没有找到相关文章

最新更新