我如何才能最好地检查以下日期(格式dd / mm / yyyy)是否在将来:01/03/2011
澄清一下,这是2011年3月1日。
感谢。
编辑:时区通过date_default_timezone_set('Europe / London')设置;
答案 0 :(得分:1)
$date = "01/03/2011";
// convert the date to a time structure
$tmarr = strptime($date, "%d/%M/%Y");
// convert the time structure to a time stamp representing the start of the day
$then = mktime(0, 0, 0, $tmarr['tm_mon']+1, $tmarr['tm_mday'], $tmarr['tm_year']+1900);
// get the current time
$today = mktime(0, 0, 0);
// compare against the current date
if ($then > $today) {
echo "$date is in the future";
}
elseif ($then == $today) {
echo "$date is today";
}
else {
echo "$date is not in the future";
}
答案 1 :(得分:0)
您可以使用strtotime,并与当前日期进行比较。
首先,您需要将/更改为 - 以将其解释为欧洲日期。
日期为m / d / y或d-m-y格式 通过观察来消除歧义 各种之间的分隔符 组件:如果分隔符是 斜线(/),然后是美国的m / d / y 假定;而如果分隔符是a 破折号( - )或点(。),然后是 假设欧洲d-m-y格式。
所以把它们放在一起:
$time = strtotime(str_replace("/","-",$date) )
if ($time > time())
{
echo "$date is in the future."
}