首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这会破坏时间

为什么这会破坏时间
EN

Stack Overflow用户
提问于 2014-08-19 09:32:58
回答 6查看 157关注 0票数 0

下面有下面的代码,它输出了26/11/1949,但是当运行strtotime时,它输出了1970年的ephoc时间。

代码语言:javascript
运行
复制
$var = '26/11/1949';
echo $var;
$var = date("d/m/Y", strtotime($var));
echo $var;

更重要的是,我如何才能得到重新安排的日期之前和之后的版本?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-19 10:15:34

这里的问题是strtotime()无法识别您的日期。

strtotime()可以接受的日期格式列表在PHP文档中列出。不幸的是,使用dd/mm/y的格式与此处列出的任何格式不匹配。因此,如果继续使用代码,在大多数情况下都会出现数据转换错误。

我的建议是手动解析日期,使用mktime从其中获取UNIX时间戳,然后使用date输出格式日期。如果脚本允许,可以选择使用不同的strtotime()友好日期格式。

我还会推荐使用DateTime()类,特别是如果您计划对日期进行进一步的操作。您可以使用日期::createFromFormat(‘d/m/Y’)函数从字符串中设置DateTime对象。

票数 0
EN

Stack Overflow用户

发布于 2014-08-19 09:40:16

问题是,26/11/1949不是strtotime()所识别的格式的日期。当日期的各个部分用/分隔时,它希望它是m/d/Y,但是26不是一个有效的月份号。

您应该使用Date::create_from_format,以便指定如何解析$var

代码语言:javascript
运行
复制
$date = Date::create_from_format('d/m/Y', $var);
票数 1
EN

Stack Overflow用户

发布于 2014-08-19 09:34:16

因为:

unix时间戳是一种将时间作为运行总秒来跟踪的方法。这一统计从1970年1月1日世界协调时的Unix时代开始。因此,unix时间戳只是特定日期与Unix之间的秒数。还应该指出(感谢本网站访问者的评论),无论您位于全球何处,这一时间点在技术上都不会改变。这对于计算机系统在在线和客户端的动态和分布式应用程序中跟踪和排序日期信息非常有用。

来源:http://www.unixtimestamp.com/index.php

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

https://stackoverflow.com/questions/25380041

复制
相关文章

相似问题

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