【发布时间】:2010-12-24 08:59:54
【问题描述】:
我有一个需要支持时区的 PHP 应用程序。现在我将数据库中的日期和时间值存储为整数。所以这就是我要做的。
// now create the DateTime object for this time and user time zone
$dtime = new DateTime($date_time, new DateTimeZone($time_zone));
$timestamp = $dtime->format('U');
我不明白的是,即使此人在新西兰(太平洋/奥克兰)并且应用程序使用上述代码存储此日期:24-12-2010 00:00:00,该值返回为: 1293102000
然后使用完全相同的日期/时间并将时区设置为伦敦(欧洲/伦敦)我得到这个时间戳:1293148800
为什么时间戳不同?我认为时间戳与 Unix 纪元的同一日期的秒数相同?
如果它们不同,这意味着当有人在数据库中搜索 24-12-2010 00:00:00 和 24-12-2010 23:59:59 之间的所有记录时,我需要使用用户时区进行创建的时间戳,我必须使用时区首先创建时间戳。
帮助!
【问题讨论】: