首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP: strtotime返回"boolean“类型的"nothing”

PHP: strtotime返回"boolean“类型的"nothing”
EN

Stack Overflow用户
提问于 2013-10-03 16:56:43
回答 2查看 1.7K关注 0票数 5

我有变量$EDate,我用strtotime函数对这个变量使用不同的值,结果如下:

代码语言:javascript
复制
$EDate = 10-21-2013;    echo "strtotime($EDate)";   the result = nothing    and the type is boolean
$EDate = 09-02-2013;    echo "strtotime($EDate)";   the result = 1360386000 and the type is integer
$EDate = 09-30-2013;    echo "strtotime($EDate)";   the result = nothing    and the type is boolean
$EDate = 09-30-2013;    echo "strtotime($EDate)";   the result = nothing    and the type is boolean
$EDate = 07-02-2014;    echo "strtotime($EDate)";   the result = 1391749200 and the type is integer
$EDate = 10-12-2014;    echo "strtotime($EDate)";   the result = 1418187600 and the type is integer

谁能解释一下这一点,以及如何避免布尔结果?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-03 17:03:40

来自文档

通过查看各个组件之间的分隔符,可以消除m/d/y或dot格式中的日期歧义:如果分隔符是斜杠(/),则假定为美国的m/d/y;而如果分隔符为破折号(-)或点(.),则假定为欧洲的d-m-y格式,则假定为

您的代码假定日期为d-m-y格式,并将返回FALSE,因为月份值不正确:

代码语言:javascript
复制
var_dump(strtotime('10-21-2013')); // no month 21
var_dump(strtotime('09-30-2013'));
var_dump(strtotime('09-30-2013'));

如果您希望能够使用自定义格式,请使用DateTime::createFromFormat()

代码语言:javascript
复制
$date = DateTime::createFromFormat('m-d-Y', '10-21-2013');
echo $date->format('U');

演示!

票数 4
EN

Stack Overflow用户

发布于 2013-10-03 16:58:01

编辑:这个答案不再适用于这个问题,见下面的评论。

把你的值放在引号中,这样它们就变成了字符串:

代码语言:javascript
复制
$EDate = '10-21-2013'; 
...

您当前的代码做了一个数学减法:10-12-2013= -2015。

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

https://stackoverflow.com/questions/19164923

复制
相关文章

相似问题

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