有沒有一種快速的方法來計算日期差異在PHP?例如:php日期差異?
$date1 = '2009-11-12 12:09:08';
$date2 = '2009-12-01 08:20:11';
然後做一個計算,$ DATE2減去DATE1 $
我讀php.net文檔,但沒有運氣。有沒有快速的方法來做到這一點?
有沒有一種快速的方法來計算日期差異在PHP?例如:php日期差異?
$date1 = '2009-11-12 12:09:08';
$date2 = '2009-12-01 08:20:11';
然後做一個計算,$ DATE2減去DATE1 $
我讀php.net文檔,但沒有運氣。有沒有快速的方法來做到這一點?
strtotime會將您的日期字符串轉換爲unix時間戳。 。自Unix紀元(秒
$ts1 = strtotime($date1);
$ts2 = strtotime($date2);
$seconds_diff = $ts2 - $ts1;
請注意,如果兩個日期之間存在時間變化(如春季或秋季),這可能會給你不同的結果。 試試這個: echo strtotime('2013-03-30 21:00') - strtotime('2013-03-29 21:00'); echo strtotime('2013-03-31 21:00') - strtotime('2013-03-30 21:00'); 你得到86400和82800. 結果其實是正確的。但如果用86400除以得到需要考慮的天數(所以最好使用日期差異函數)。 – memical 2013-03-29 11:07:10
如果您使用的是現代版本的php,請使用adam的解決方案。 PHP有很多代碼來解決與時間有關的異常情況。 – txyoji 2014-09-22 19:12:24
我建議使用日期 - > DIFF功能,如實施例中所示:
$dStart = new DateTime('2012-07-26');
$dEnd = new DateTime('2012-08-26');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->format('%R'); // use for point out relation: smaller/greater
echo $dDiff->days;
下面代碼將給出通過在兩個日期之間取出差異 ..
$str = "Jul 02 2013";
$str = strtotime(date("M d Y ")) - (strtotime($str));
echo floor($str/3600/24);
當試圖計算我的'JQuery datepicker'的日期差異時,'floor'給了我奇怪的結果。例如,'floor((stsetup(())和strtotime($ _ POST ['date']))?$ _POST ['date']:date(「Ymd」))) - strtotime(date(「Ymd」)))/ 3600/24)'給我在3月31日和3月21日之間的9.9583333333333的差異(所以當我期待10時,9倒數)。我用'round'函數來解決問題。 – 2016-03-21 18:44:37
是喬納森, 你是對的。 – 2016-09-13 08:07:58
@kiamlaluno - 這不是一個確切的*重複,因爲它是一個更復雜的問題(該問題中的OP要格式化爲「x年,y月,z天」等)。 – 2009-12-21 14:32:01
我想在「天」:) – mysqllearner 2009-12-21 14:39:26