【问题标题】: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 / 14 和1391472000 = 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 和相关类。它们比基本的日期函数强大得多。
【解决方案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 手册。