时间输出错误的日期


Strtotime outputs wrong date

给定以下字符串:"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 :)

小提琴