我做
strtotime("2008-09-04")
09是月份,04是白天,我得到结果:
1220500800
Thu,2008年9月4日04:00:00 GMT 。那4个小时从哪里来?我应该从strtotime获得1220486400
而不是1220500800
。
答案 0 :(得分:3)
您可以使用函数date_default_timezone_set('UTC');
全局设置时区,或者只需在调用strtotime()
函数时在本地设置时区:
echo strtotime("2008-09-04 +0000"); # 1220486400
答案 1 :(得分:0)
正如上面的人所说,你可能会遇到时区错配。此功能可用于调试问题:http://us3.php.net/date_default_timezone_get
答案 2 :(得分:0)
PHP的strtotime最常见的问题是时区和日期时间格式。我将解决这两点。
因此,现在我们有了清晰的画面。要将日期时间转换为unixtimestamp,请执行以下操作:
// Saves your local set Timezone.
$saveDDTZ = date_default_timezone_get();
// Sets the timezone to UTC
date_default_timezone_set("UTC");
// Converts a date-time into a unix timestamp (= 1560470400).
$unixTS = strtotime( "2019-06-14 00:00:00 UTC");
// Restore the timezone
date_default_timezone_set($saveDDTZ");
要将unix时间戳恢复为日期,请使用:
// Saves your local set Timezone.
$saveDDTZ = date_default_timezone_get();
// Sets the timezone to UTC
date_default_timezone_set("UTC");|
$unixTS = 1560470400
$dateTime = date("Y-m-d H:i:s", $unixTS);
// Restore the timezone
date_default_timezone_set($saveDDTZ");
如果要将UTC日期更改为TimeZone,请使用UTC与TimeZone和夏时制的区别。