我已经把自己弄糊涂了,我需要仔细检查一下这一点。对不起,如果这真的是一个愚蠢的问题..
好的 - 我在Linux上运行的PHP Web应用程序需要支持时区。我提供了一个日历小部件,允许用户设置他们的时区,然后为某个事件选择日期和小时/分钟。
然后我通过使用将该值作为int存储在记录中。当我需要再次向用户显示日期时,我只需获得他们的时区设置并应用于int值。
代码:
$dtzone = new DateTimeZone($time_zone);
$dtime = new DateTime($date_time, $dtzone);
$timestamp = $dtime->format('U');
return $timestamp;
注意: $ date_time的格式为'YYYY-MM-DD H:S' $ time_zone是他们选择的,例如:America / Jamaica
现在我将返回的int存储在数据库中。
然后我有一个PHP脚本,我通过CRON执行,它在悉尼 - 澳大利亚的服务器中运行。
我的理解是我所有的脚本需要做的是通过time()获取服务器当前时间戳,然后在数据库中搜索具有time()调用产生的完全相同整数的任何整数。我不必担心用户选择日期/时间的时区。
请注意,CRON必须每分钟运行一次,因为我也允许用户选择分钟。
这个假设是否正确?
干杯
马克
答案 0 :(得分:1)
如果您将时间戳存储为int,那么您最有可能使用始终为UTC的unix时间戳。无论在何处生成,unix时间戳都是相同的。无论是牙买加,悉尼还是火星。