我以这种格式提供日期/时间:2012-10-14T06:00
我可以像这样重写数据:上午6点使用
<?php
function formatDate($date, $format){
$output = date($format, strtotime($date));
return $output;
}
?>
<?php echo formatDate('2012-10-14T06:00', 'g:ia'); ?>
输出:上午6:00
哪个好,但如何使用
调整偏移量date_default_timezone_set( '美洲/洛杉矶');
或
date_default_timezone_set('欧洲/阿姆斯特丹);
设置为用户时区(无论他们选择什么) - 时间应该在原始时区数据与用户提供的时间之间抵消('Europe / Amsterdam)
因此,如果他们将默认时区设置为其他国家/地区,则时间将在上午8:00或凌晨4:00读取,具体取决于时区偏移量。
基准时区将始终为XXXX-XX-XXTXX:XX格式。
非常感谢任何帮助
答案 0 :(得分:3)
使用DateTime个对象。手动提取偏移量不会考虑白天节省和其他怪癖。
// use the the appropriate timezone for your stamp
$timestamp = DateTime::createFromFormat('Y-m-d\TH: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');