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

Fiddle