Strtotime 输出错误的日期
Strtotime outputs wrong date
给定以下字符串:“03-02-2015”(d-m-Y 格式),当我申请时
strtotime("03-02-2015");
它给了我 1422914400。
当我再次将它转换回日期时,只是为了验证,使用互联网上更多的 unix 时间戳转换器,他们提示:02-02-2015.
为什么strtotime会把字符串转成时间戳,实际是昨天?我该如何解决这个问题?
对于strtotime("now")
,当使用互联网上的转换器验证时,它输出正确的结果。
using more unix timestamp convertors on the internet
忘记它们,你的语言 PHP 本身就为你提供了处理它的方法,使用它们
echo date("Y-m-d",strtotime("03-02-2015"));
版画
2015-02-03
strtotime 输出没有问题。
@SunilPachlangia I want strtotime to generate the correct timestamp (the one corresponding to today, not yesterday)
然后只需使用
$timestamp=time();
现在了解您看到不同日期的真正原因。一个单一的 Unix 时间戳将在不同的时区显示不同的时间,因为时区变化很小,如果您生成时间戳的地方使用与您使用该时间戳的地方不同的时区,您可以看到一天的差异。
这里给大家实战演示
<?php
$ts=strtotime("03-02-2015"); //2015-02-03
date_default_timezone_set("America/Chicago");
echo date("Y-m-d",$ts); //2015-02-02 :)
给定以下字符串:“03-02-2015”(d-m-Y 格式),当我申请时
strtotime("03-02-2015");
它给了我 1422914400。
当我再次将它转换回日期时,只是为了验证,使用互联网上更多的 unix 时间戳转换器,他们提示:02-02-2015.
为什么strtotime会把字符串转成时间戳,实际是昨天?我该如何解决这个问题?
对于strtotime("now")
,当使用互联网上的转换器验证时,它输出正确的结果。
using more unix timestamp convertors on the internet
忘记它们,你的语言 PHP 本身就为你提供了处理它的方法,使用它们
echo date("Y-m-d",strtotime("03-02-2015"));
版画
2015-02-03
strtotime 输出没有问题。
@SunilPachlangia I want strtotime to generate the correct timestamp (the one corresponding to today, not yesterday)
然后只需使用
$timestamp=time();
现在了解您看到不同日期的真正原因。一个单一的 Unix 时间戳将在不同的时区显示不同的时间,因为时区变化很小,如果您生成时间戳的地方使用与您使用该时间戳的地方不同的时区,您可以看到一天的差异。
这里给大家实战演示
<?php
$ts=strtotime("03-02-2015"); //2015-02-03
date_default_timezone_set("America/Chicago");
echo date("Y-m-d",$ts); //2015-02-02 :)