下面有下面的代码,它输出了26/11/1949,但是当运行strtotime时,它输出了1970年的ephoc时间。
$var = '26/11/1949';
echo $var;
$var = date("d/m/Y", strtotime($var));
echo $var;更重要的是,我如何才能得到重新安排的日期之前和之后的版本?
发布于 2014-08-19 10:15:34
这里的问题是strtotime()无法识别您的日期。
strtotime()可以接受的日期格式列表在PHP文档中列出。不幸的是,使用dd/mm/y的格式与此处列出的任何格式不匹配。因此,如果继续使用代码,在大多数情况下都会出现数据转换错误。
我的建议是手动解析日期,使用mktime从其中获取UNIX时间戳,然后使用date输出格式日期。如果脚本允许,可以选择使用不同的strtotime()友好日期格式。
我还会推荐使用DateTime()类,特别是如果您计划对日期进行进一步的操作。您可以使用日期::createFromFormat(‘d/m/Y’)函数从字符串中设置DateTime对象。
发布于 2014-08-19 09:40:16
问题是,26/11/1949不是strtotime()所识别的格式的日期。当日期的各个部分用/分隔时,它希望它是m/d/Y,但是26不是一个有效的月份号。
您应该使用Date::create_from_format,以便指定如何解析$var:
$date = Date::create_from_format('d/m/Y', $var);发布于 2014-08-19 09:34:16
因为:
unix时间戳是一种将时间作为运行总秒来跟踪的方法。这一统计从1970年1月1日世界协调时的Unix时代开始。因此,unix时间戳只是特定日期与Unix之间的秒数。还应该指出(感谢本网站访问者的评论),无论您位于全球何处,这一时间点在技术上都不会改变。这对于计算机系统在在线和客户端的动态和分布式应用程序中跟踪和排序日期信息非常有用。
来源:http://www.unixtimestamp.com/index.php
https://stackoverflow.com/questions/25380041
复制相似问题