【发布时间】:2011-03-18 21:12:24
【问题描述】:
我有一个包含活动的周历,并且希望用户不能添加过去几天的活动。所以我想使用这样的功能:
if( strtotime($this->day) < time() ){ // date format is YYYY-MM-DD
// date is past
}else{
// date is not past
}
它似乎工作正常,除了它将今天日期视为过去一天。我做错了什么?
【问题讨论】:
我有一个包含活动的周历,并且希望用户不能添加过去几天的活动。所以我想使用这样的功能:
if( strtotime($this->day) < time() ){ // date format is YYYY-MM-DD
// date is past
}else{
// date is not past
}
它似乎工作正常,除了它将今天日期视为过去一天。我做错了什么?
【问题讨论】:
if(strtotime($this->day) < mktime(0, 0, 0)){
// date is past
} else {
// date is not past
}
【讨论】:
更简单->
if(strtotime($this->day) < strtotime(date('Y-m-d')))
{
...
}
else
{
...
}
【讨论】:
strtotime(date('Y-m-d H:i:s'))
时间戳永远不会只包含日期,而是始终精确到当前秒。 strtotime($this->day) 将在 0:00 返回今天的日期,而您正在将其与现在进行比较,例如 11:12。
您可以使用strtotime("$this->day 12:59:59pm");(如果$this->day 的格式允许)或使用明天的时间戳。
【讨论】:
strtotime($this->day)<time()-24*60*60。