首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Strtotime输出错误日期

问Strtotime输出错误日期
EN

Stack Overflow用户
提问于 2015-02-03 08:38:14
回答 1查看 1.4K关注 0票数 0

给定以下字符串:"03-02-2015“(d-m-Y格式),当我应用时

代码语言:javascript
复制
strtotime("03-02-2015");

它给了我1422914400。

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

为什么strtotime将字符串转换为时间戳,实际上是昨天?我怎么才能解决这个问题?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 08:45:58

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

忘记它们,您的语言PHP本身提供了处理这些问题的方法,并使用它们

代码语言:javascript
复制
echo date("Y-m-d",strtotime("03-02-2015"));   

打印

代码语言:javascript
复制
2015-02-03

这个strtotime输出没有什么问题。

@SunilPachlangia我希望strtotime生成正确的时间戳(对应于今天的时间戳,而不是昨天的时间戳)

然后简单地使用

代码语言:javascript
复制
$timestamp=time();

这是你看到不同日期的真正原因。一个Unix时间戳将显示不同时区上的不同时间,因为时区会发生一些变化,如果生成时间戳的位置与使用时间戳的位置使用不同的时区,则有一天会出现差异。

这里有一个实用的演示。

代码语言:javascript
复制
<?php
$ts=strtotime("03-02-2015");                        //2015-02-03
date_default_timezone_set("America/Chicago");
echo date("Y-m-d",$ts);                             //2015-02-02 :)

小提琴

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28294513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档