在PHP中找出2个日期是否在同一个月的最佳方法是什么?

时间:2014-02-04 06:57:39

标签: php date datetime unix-timestamp

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

编辑:我忘了。还必须确保它在同一年。

5 个答案:

答案 0 :(得分:13)

我建议使用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和相关课程。它们比基本日期函数功能强大得多。

答案 1 :(得分:4)

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))

答案 2 :(得分:3)

可能这个:

$first = date("m", $timestamp);
$second = date("m", $timestamp2);

if($first == $second) {
   // they are in same month
}
else {
   // they aren't
}

答案 3 :(得分:0)

试试这个

您只需使用php日期函数即可获得一个月的unix时间戳。

所以$ date1 = 1393624800;

&安培; $ date2 = 1391472000;

您可以使用日期('m')

轻松检查月份是否相同

PHP代码

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

希望这可以帮助你:)

答案 4 :(得分:-1)

试试这个

$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手册。