PHP:生日祝福今日

时间:2010-10-06 14:38:18

标签: php

我已将用户的生日存储在birthday中,为1999-02-26。

如何检查今天是否过生日?

if(date('m-d') == ..?

5 个答案:

答案 0 :(得分:11)

这个答案应该有效,但这取决于strtotime能够找出数据库的日期格式:

$birthDate = '1999-02-26'; // Read this from the DB instead
$time = strtotime($birthDate);
if(date('m-d') == date('m-d', $time)) {
    // They're the same!
}

答案 1 :(得分:5)

if(date('m-d') == substr($birthday,5,5))

添加Tim说的话:

if(date('m-d') == substr($birthday,5,5) or (date('y')%4 <> 0 and substr($birthday,5,5)=='02-29' and date('m-d')=='02-28'))

答案 2 :(得分:2)

<?php
/**
 * @param string $birthday Y-m-d
 * @param int $now
 * @return bool
 */
function birthdayToday($birthday, $now = null) {
    $birthday = substr($birthday, -5);
    if ($now === null) {
        $now = time();
    }
    $today = date('m-d', $now);
    return $birthday == $today || $birthday == '02-29' && $today == '02-28' && !checkdate(2, 29, date('Y', $now));
}

答案 3 :(得分:1)

我用过这个

$birthday = new DateTime("05-28-2020");
$today = new DateTime(date("Y-m-d"));

if ($birthday->format("m-d") == $today->format("m-d")) {
 echo 'Today is your birthday';
} else {
 echo 'Today is not your birthday';
}

答案 4 :(得分:0)

从PHP 5.2开始:

if (substr($dateFromDb, -5) === date_create()->format('m-d')) {
    // Happy birthday!
}