给出以下字符串:" 03-02-2015" (d-m-Y格式),当我申请时
strtotime("03-02-2015");
它给了我1422914400。
当我再次将其转换回日期时,为了验证,在互联网上使用更多unix时间戳转换器,他们会提示: 02-02-2015 。
为什么strtotime会将字符串转换为实际上是昨天的时间戳?我该如何解决这个问题?
对于strtotime("now")
,当使用互联网上的转换器进行验证时,它会输出正确的结果。
答案 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 强>