【发布时间】:2010-07-21 21:21:51
【问题描述】:
在将日期和时间插入我的 MySQL 数据库之前,我正在使用 PHP 将日期和时间转换为时间戳。
我的问题是,当我使用 PHP 的 strtotime 函数时,输出时间戳比我的实际时间晚 -1 小时。
例如,考虑到今天的日期:2010 年 7 月 21 日。当我使用 php 代码时:
<?php
$my_timestamp = strtotime("07/21/2010");
echo $my_timestamp;
?>
发回的时间戳是相当于 GMT 的 MINUS 1 小时。即我回来:2010 年 7 月 20 日 23:00:00 GMT 而不是 2010 年 7 月 21 日 00:00:00 GMT。
我住在英国,所以我的时区是 GMT。我已经使用 date_default_timezone_set('Europe/London') 在脚本中声明了我的时区,并且我还确保将 php.ini 文件设置为 'Europe/London'。
这可能与夏令时有关吗?如何在不将所有日期增加 1 小时的情况下解决问题?
【问题讨论】:
-
如果只需要日期加1小时,时间戳加3600(3600秒=1小时)
-
您的时区不是格林威治标准时间,英国现在是夏令时间,格林威治标准时间 +1
-
@nos 为什么不添加这个作为答案,我认为它是正确的。
-
澄清一下,作为时区的 GMT 仍然存在,即使我们不在英国。我们现在的时区是 BST (GMT+1),所以正如已经指出的那样,您错误地假设您在 GMT 上是您的问题的原因。不比加州那个告诉我他全年总是在PDT上的人差:(
标签: php mysql strtotime unix-timestamp