1
我正在計算比較上週和前一年同一天的每週值。由於我們剛剛閏年,我的方法會導致問題。PHP日期:在閏年內計算日期的問題
我計算這樣的日期,並進行相應的選擇:
$today_raw = date('Y-m-d');
$yearAgo = date('Y-m-d', strtotime('-1 year', strtotime($today_raw)));
$weekAgo = date('Y-m-d', strtotime('-6 day', strtotime($today_raw)));
$weekYearAgo = date('Y-m-d', strtotime('-1 year', strtotime($weekAgo)));
$stmt_currentWeek = $pdo->prepare("SELECT X FROM Y WHERE Z BETWEEN '$weekAgo' AND '$today'");
$stmt_weekLastYear = $pdo->prepare("SELECT X FROM Y WHERE Z BETWEEN '$weekYearAgo' AND '$yearAgo'");
很明顯的是,SELECT
返回錯誤值的數量爲$weekYearAgo
是完全錯誤的,因爲它沒有反映閏年的差異。
我在做什麼錯?
爲什麼不使用PHP中的dateTime對象?它應該可以解決你的問題 – RFLdev
你的數據庫中的時間戳與你的'php.ini'中的日期設置是否在同一時區?如果不是,那麼在將它發送到數據庫之前,需要符合php日期。 – Daniel
爲什麼不使用SQL內置的日期函數?他們應該處理這些事情。類似於NOW() - INTERVAL 1 YEAR' – apokryfos