【问题标题】:What is the best way to find out if 2 dates are in same month in PHP?在 PHP 中找出 2 个日期是否在同一个月的最佳方法是什么?
【发布时间】:2014-02-04 06:57:38
【问题描述】:

我有 2 个日期是 unix 时间戳,我必须弄清楚日期是否在同一个月。例如,如果我有1393624800 = 02 / 28 / 141391472000 = 2 / 4 / 2014。我想我可以将 unix 时间戳转换为28-02-2014 之类的格式并提取月份,但我觉得它有点脏。最好的方法是什么?

编辑:对不起,我忘了。还要确保是同一年。

【问题讨论】:

    标签: php date datetime unix-timestamp


    【解决方案1】:

    我建议使用 DateTime 类

    $date1 = new DateTime();
    $date1->setTimestamp($timestamp1);
    
    $date2 = new DateTime();
    $date2->setTimestamp($timestamp2);
    
    if ($date1->format('Y-m') === $date2->format('Y-m')) {
        // year and month match
    }
    

    我强烈建议任何学习 PHP 的人学习 DateTime 和相关类。它们比基本的日期函数强大得多。

    【讨论】:

      【解决方案2】:
      if (date("F Y", $date1) == date("F Y", $date2))
      

      http://au2.php.net/manual/en/function.date.php

      确保它们在同一年和同一年,否则请执行以下操作:

      if (date("n", $date1) == date("n", $date2))
      

      【讨论】:

        【解决方案3】:

        大概是这样的:

        $first = date("m", $timestamp);
        $second = date("m", $timestamp2);
        
        if($first == $second) {
           // they are in same month
        }
        else {
           // they aren't
        }
        

        【讨论】:

          【解决方案4】:

          试试这个

          您可以简单地使用 php 日期函数获取 unix 时间戳的月份。

          所以 $date1 = 1393624800;

          & $date2 = 1391472000 ;

          您可以使用 date('m') 轻松检查月份是否相同

          PHP 代码

          if(date('m', $date1) == date('m', $date2)){ //Action; }
          

          希望对你有帮助:)

          【讨论】:

            【解决方案5】:

            试试这个

            $time = strtotime(date('Y-m-01 00:00:00')); // == 1338534000
            

            翻译为:

            $date = date('Y-m-d H:i:s', $time); // == 2012-06-01 00:00:00
            

            阅读有关date()time() 函数的PHP 手册。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-01
              • 2011-02-07
              • 2017-09-18
              • 2012-01-13
              • 1970-01-01
              相关资源
              最近更新 更多