给定以下字符串:"03-02-2015“(d-m-Y格式),当我应用时
strtotime("03-02-2015");它给了我1422914400。
当我再次将它转换回日期时,只是为了验证,在互联网上使用更多的unix时间戳转换器,它们会提示:02-02-2015。
为什么strtotime将字符串转换为时间戳,实际上是昨天?我怎么才能解决这个问题?
对于strtotime("now"),当在互联网上用转换器进行验证时,它输出正确的结果。
发布于 2015-02-03 08:45:58
在互联网上使用更多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 :)https://stackoverflow.com/questions/28294513
复制相似问题