PHP:检查以后的EU日期格式

时间:2011-02-22 20:33:33

标签: php

我如何才能最好地检查以下日期(格式dd / mm / yyyy)是否在将来:01/03/2011

澄清一下,这是2011年3月1日。

感谢。

编辑:时区通过date_default_timezone_set('Europe / London')设置;

2 个答案:

答案 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."
}