在PHP ex中仅比较没有年份的日期和月份。生日

时间:2016-06-03 06:37:26

标签: php mysql date

我想将当前日期的日期和月份与订阅日期的日期和月份进行比较。 ex。当前日期(d-m)= 3-6 ,我想将其与任何其他 d-m 进行比较
我应该怎么做在PHP中 在我的项目中,条件就像我们不比较年份的出生日期。

请帮帮我。 提前致谢。

6 个答案:

答案 0 :(得分:4)

这方面的诀窍是让这个月来到第一位。这样PHP就可以用最高值来比较数字。看一下下面的例子:

$aDate = DateTime::createFromFormat('m-d', '05-20');
$bDate = DateTime::createFromFormat('m-d', '06-29');

if ($aDate->format('md') > $bDate->format('md')) {
    echo "'aDate' is bigger than 'bDate'";
}

答案 1 :(得分:2)

使用

$current_date = date("d-m");
$subscription = "03-06-2016";
$subscription_date  = date("d-m", strtotime($subscription));
if($current_date ==$subscription_date)
{
    echo "date is equal";
}else
{
    echo "date is not equal";
}

答案 2 :(得分:1)

这可能对您有所帮助

$sdate = $row['subscription_date'];
$date1 = date("mm-dd");
$date2 = date("mm-dd",strtotime($sdate)) ;
if ($date1 == $date2) {

}

答案 3 :(得分:0)

使用DATE_FORMAT()函数提取部分日期:

参考:http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

SELECT * from table_name WHERE DATE_FORMAT(subscription_date, '%d-%m') = "05-05";

答案 4 :(得分:0)

使用DateTime()PHP对象。

考虑到你有一个包含来自mysql查询结果的用户信息的数组:($userData['suscriptionDate']

$today = new DateTime();

$userSuscription = new DateTime($userData['suscriptionDate']);

if ( $today->format('d') == $userSuscription->format('d') && $today->format('m') == $userSuscription->format('m')) {

    echo 'Congratulations!!';
}

答案 5 :(得分:0)

我认为,一种比较优雅的比较方式,尤其是当您有完整的日期和时间时,是diff类的Datetime函数:

$d1 = new Datetime();
$d2 = new Datetime('+3 months +2 days +3 hours');

$diff = $d1->diff($d2);
var_dump($diff->d); // 2
var_dump($diff->m); // 2
// or have a comparison as a string
var_dump($diff->format('Difference is in %R%a days'));
// output: Difference is in 63 days

享受! Link to doc