【问题标题】:How do I check if this date format is in the future? [duplicate]如何检查此日期格式是否是将来的? [复制]
【发布时间】:2013-05-28 09:06:44
【问题描述】:

我的日期正在返回,如 01/05/2013 12:44。如果这个日期时间在未来,我如何检查 php?

【问题讨论】:

  • 你从哪里得到这些数据?来自用户?
  • 我无法以其他方式对其进行格式化
  • 将日期转换为时间戳并进行比较
  • @Nicola:它没有要求格式化。我问你从哪里得到它。例如。如果它来自客户端,则需要应用时区更改,因为客户端和服务器可能位于不同的时区。
  • 啊,我明白了,很抱歉。不,它来自服务器。

标签: php


【解决方案1】:

试试这个:

<?php

$dt = '01/05/2013 12:44';
$nowdt = time();
$diff = strtotime($dt) - $nowdt;
echo $diff;
if($diff > 0){
 echo (" your date is future date");
} else {
    echo ("your date is is not future date");
}
?>

【讨论】:

    【解决方案2】:

    您可以将 time() 与该日期的 UNIX 时间戳表示进行比较:

    if (time() < strtotime("01/05/2013 12:44"))
    {
        // your time is greater than todays date
    }
    

    另一种方式

    $time = strtotime(str_replace("/","-",$date) )
    if ($time > time())
    {
      echo "$date is in the future."
    }
    

    【讨论】:

    • 这行得通,谢谢,我会在 10 分钟内接受
    • :) 谢谢你的欢迎
    • 我正在尝试将我的日期时间格式转换为 2013 年 5 月 30 日晚上 8 点之类的格式,但是当我回显 strtotime($meetings[0]['date']) 时,什么都没有打印出来。为什么是这样?我确实尝试过格式化它,但它是在 1-1-1970 中出现的,所以这就是我回应这个值的原因。我也试过 print_r。
    • 它毕竟不工作:(。我只是把我的日期改成了过去,它仍然显示它。
    • 第二种方法有效:)
    【解决方案3】:

    从 PHP 手册中使用 mktime

    伪代码示例:

    $today     = mktime("today");
    $your_date = mktime("...");
    
    if ($your_date > $today) {
        // it's in the future
    }
    

    【讨论】:

      【解决方案4】:

      转换为 Unix 时间,然后看看它是否大于当前时间。

      <?php
      if(strtotime("01/05/2013 12:44") > time()) {
       //time is in the future.
      }else{
        //time is in the past
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-06
        • 2011-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-22
        • 2013-11-08
        • 1970-01-01
        相关资源
        最近更新 更多