![](/img/trans.png)
[英]PHP and MySQL: Compare only month and day regardless of year in date field
[英]Compare only day and month without year in PHP e.g. birth date
我只想將當前日期的日期和月份與訂閱日期的日期和月份進行比較。 例如:
current date(d-m) = 3-6
我想將它與任何其他dm進行比較
我應該如何在 PHP 中做到這一點在我的項目中,條件就像我們不比較年份的出生日期。
訣竅是讓月份先到。 這樣 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'";
}
使用喜歡
$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";
}
這可能會幫助你
$sdate = $row['subscription_date'];
$date1 = date("m-d");
$date2 = date("m-d",strtotime($sdate)) ;
if ($date1 == $date2) {
}
使用 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";
使用 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!!';
}
我認為,更優雅的比較方式,尤其是當你有一個完整的日期與時間是Datetime
類的diff
函數:
$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
享受! 鏈接到文檔
如果您只需要檢查jn
日期是否與當前日期相同,那么您不需要進行多次函數調用。 因為您不是在比較大於或小於,所以輸入的格式並不重要。
代碼:(演示)
$subscription = '29-11';
var_export(date("j-n") === $subscription);
// at the moment, the result is true
j
是一個月中的今天沒有任何前導零和n
是今天的月份,沒有任何前導零。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.