首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从可变日期开始的5天

从可变日期开始的5天
EN

Stack Overflow用户
提问于 2013-06-18 23:53:41
回答 3查看 82关注 0票数 1
代码语言:javascript
运行
复制
date_default_timezone_set('Europe/London');
$date = '06-17-2013';

if (strtotime("now") > strtotime("+5 days", strtotime($date))) {
   echo '5 days have gone by';
} else {
   echo 'not yet';
}

这个函数总是返回'5天已经过去了‘。我永远不能让它返回“还没有”为什么?

EN

回答 3

Stack Overflow用户

发布于 2013-06-18 23:58:32

请尝试使用YYYY-MM-DD指定日期。strtotime似乎不支持MM-DD-YYYY表示法。

票数 1
EN

Stack Overflow用户

发布于 2013-06-19 00:00:54

您应该考虑使用SPL DateTime对象。

试试这个:

代码语言:javascript
运行
复制
$date = new DateTime('2013-06-17');
$date->add(new DateInterval("P5D");
$now = new DateTime();
if($now > $date) {
    echo "5 Days have passed";
}
else{
    echo "not yet";
}
票数 1
EN

Stack Overflow用户

发布于 2013-06-19 00:19:20

如果您将'06-17-2013'更改为此'06/17/2013',它将按预期工作

代码语言:javascript
运行
复制
<?php
date_default_timezone_set('Europe/London');
$date = '06/17/2013';

if (strtotime("now") > strtotime("+5 days", strtotime($date))) {
   echo '5 days have gone by';
} else {
   echo 'not yet';
}
?>

在strtotime函数中使用正斜杠/和连字符-是不同的。

代码语言:javascript
运行
复制
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator   
between the various components: if the separator is a slash (/), then the American 
m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the 
European d-m-y format is assumed.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17173468

复制
相关文章

相似问题

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