Strtotime输出错误的日期

时间:2015-02-03 08:38:15

标签: php timestamp

给出以下字符串:" 03-02-2015" (d-m-Y格式),当我申请时

strtotime("03-02-2015");

它给了我1422914400。

当我再次将其转换回日期时,为了验证,在互联网上使用更多unix时间戳转换器,他们会提示: 02-02-2015

为什么strtotime会将字符串转换为实际上是昨天的时间戳?我该如何解决这个问题?

对于strtotime("now"),当使用互联网上的转换器进行验证时,它会输出正确的结果。

1 个答案:

答案 0 :(得分:1)

  

在互联网上使用更多unix时间戳转换器

忘掉它们,您的语言PHP本身为您提供了处理它的方法,使用它们

echo date("Y-m-d",strtotime("03-02-2015"));   

打印

2015-02-03

该strtotime输出没有任何问题。

  

@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 :)

<强> Fiddle