我想将当前日期的日期和月份与订阅日期的日期和月份进行比较。
ex。当前日期(d-m)= 3-6 ,我想将其与任何其他 d-m 进行比较
我应该怎么做在PHP中
在我的项目中,条件就像我们不比较年份的出生日期。
请帮帮我。 提前致谢。
答案 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