將月份和日期(“md”)與格式為“ymd”的日期進行比較的最佳方法是什么。
例如:
$date1 = "2022-04-20";
$date2 = "2022-05-20";
$seasonStart = "03-15";
$seasonEnd = "04-30";
我想知道 $date1 和 $date2 在 $seasonStart 和 $seasonEnd 之間有多少天。
uj5u.com熱心網友回復:
您可以使用 DateTime 物件進行比較。
$date1 = new DateTime($date1);
$date2 = new DateTime($date2);
對于季節性日期,您可以通過幾種不同的方式進行操作,具體取決于您需要它的作業方式。
如果您想查看這些日期是否在它們發生年份的季節內,您可以使用給定日期的年份,而不是默認為當前年份。
$year = $date1->format('Y'); $seasonStart = new DateTime("$year-$seasonStart"); $seasonEnd = new DateTime("$year-$seasonEnd");如果您只想將日期范圍與當年的季節進行比較,那么您可以讓年份默認為當前年份。
$seasonStart = DateTime::createFromFormat('m-d H:i', "$seasonStart 00:00"); $seasonEnd = DateTime::createFromFormat('m-d H:i', "$seasonEnd 00:00");
然后,您可以使用它來計算季節中包含的給定范圍內的天數。
if ($date1 > $seasonEnd || $date2 < $seasonStart) {
// in this case the range does not overlap with the season at all
$days = 0;
} else {
$days = (max($seasonStart, $date1))->diff(min($seasonEnd, $date2))->days 1;
}
uj5u.com熱心網友回復:
<?php
$date = DateTime::createFromFormat('m-d', '02-15');
echo $date->format("Y-m-d");
$season=$date->getTimeStamp();
$current=time();
if ($current>$season) {
echo "Season has started!";
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/496831.html
上一篇:從R腳本中提取日期
下一篇:PHP:如何找到值“2022-06-24T15:04:37.000000Z”和“2022-06-2415:05:15”之間的時間差(以秒為單位),例如使用strtotime()?
