给定以下字符串:"03-02-2015"(d-m-Y 格式),当我申请时
strtotime("03-02-2015");
它给了我1422914400。
当我再次将其转换回日期时,只是为了验证,使用互联网上的更多 unix 时间戳转换器,它们提示:02-02-2015。
为什么strtotime将字符串转换为实际上是昨天的时间戳?我该如何解决这个问题?
对于strtotime("now")
,当与互联网上的转换器验证时,它会输出正确的结果。
忘记它们,在互联网上使用更多的UNIX时间戳转换器
你的语言PHP本身为你提供了处理它的方法,使用它们
echo date("Y-m-d",strtotime("03-02-2015"));
指纹
2015-02-03
这个时间输出没有错。
@SunilPachlangia 我希望strtotime生成正确的时间戳(对应于今天,而不是昨天)
然后只需使用
$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 :)
小提琴