我正在嘗試計算兩個日期之間的差異。
第一個日期是預訂日期,第二個日期是旅行者的生日。$tour_day 的格式是 15 December, 202X
$date1 = new DateTime($bir_day);
$date2 = new DateTime($tour_day);
$interval = $date1->diff($date2);
if( ($interval->y <= 8 && ($interval->m > 12 || $interval->d > 31)) || ($interval->y < 8) ){
// error: Adults must be at least 8 years old
}
如果預訂日期是當年,則有效。
但是,如果預訂日期是 2022 年或以上,則無法正確計算,因為
$date2 = new DateTime($tour_day);
始終轉換為 2021。
echo $tour_day;
是“2023 年 12 月 15 日”但是
echo $date2->format('m-d-y');
是“12-15-21”,但它必須是“12-15-23”(12-15-23 是我想要的,但它顯示 12-15-21)
我不明白為什么未來的日期(明年或更多)沒有正確轉換,但任何日期的當前年份都沒有問題。
uj5u.com熱心網友回復:
那是因為您的日期字串的格式不符合DateTime 的要求,請使用createFromFormat()作為:
...
$tour_day = "5 December, 2023";
// your format is "Day Month, Year", so use that format as below
$date2 = DateTime::createFromFormat("j F, Y", $tour_day);
echo $date2->format('m-d-y'); // 12-05-23
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378476.html
