我不能计算超过5年的日期?

时间:2015-04-26 22:21:07

标签: php

如果结束日期早于开始日期,我需要显示一条消息。

代码正在运行,但如果我将结束日期设置为开始日期之前的5年以上。代码什么也没做。

我不知道。那很奇怪?

这是我的代码

         if(isset($_POST['Submit'])) 
        {
            $startdate  = $_POST['start'];

        $enddate=$_POST['end'];
    if(abs(strtotime($enddate ) < strtotime($startdate)))
          {

        ?>
  <table width="767" border="0">
    <tr>
      <th bordercolor="#CC3300" bgcolor="#CC0000" scope="row"><div align="left"><span class="style11 style3">Warring:</span></div></th>
    </tr>
    <tr>
      <th width="761" bordercolor="#CC3300" bgcolor="#CC0000" scope="row"><div align="left" class="style3 style11">The end date you entered is before the start date!!</div></th>
    </tr>
  </table>
  <?php
      }
      }
      ?>

1 个答案:

答案 0 :(得分:6)

由于strtotime()

2038 date problem不支持2038年1月19日之后的日期。

来自the manual

  

时间戳的有效范围通常是从星期五,19年12月13日20:45:54 UTC到星期二,2038年1月19日03:14:07 UTC

不过,

DateTime()可以解决这个问题。

if(isset($_POST['Submit'])) {
    $startdate  = new DateTime($_POST['start']);
    $enddate    = new DateTime($_POST['end']);
    if($enddate < $startdate) {