PHP 日期時間相加

$a="2013-08-16 13:20:00";// 裡面的日期跟時間會依照資料不同而改變 非固定

$b=50;// 剩餘時間50分 這也是依照資料不同會有改 非固定

因為前面有利用傳值的方法 取得這兩個數值

我想要我取得這兩個數值後 作相加可以得到運算後的日期時間

$a+$b ---> "2013-08-16 14:10:00"

想請問要如何用PHP 寫這段語法呢??

1 個解答

評分
  • 茶葉
    Lv 6
    8 年前
    最佳解答

    請善用strtotime這個函式

    這個函式原本主要功能是將文字轉換成Unix時間戳記

    Unix時間戳記指的是以格林威治時間1970-01-01 00:00:00為基準後多少秒

    例如 strtotime("1970-01-01 00:01:00")就會得到60,因為跟基準時間差了1分鐘。

    這個函式也可以作為日期的加減,例如

    strtotime("2013-08-22 00:00:00 + 1 days")

    這樣會得到2013-08-23 00:00:00這個時間跟基準時間相差的秒數

    得到加減後的秒數,在用date這個函式轉換回日期就可以了

    以你的案例來說

    date("Y-m-d H:i:s",strtotime($a."+ ".$b." minutes"));

    如果不清處怎麼使用strtotime的加減,你也可以單純先將$a用strtotime轉成Unix時間戳記,然後將$b轉換成秒數,然後兩個相加。最後再用date轉換回日期格式就可以了

    $unixtime=strtotime($a);

    $bsec=$b*60;

    $c=$unixtime+$bsec;

    $result=date("Y-m-d H:i:s",$c);

    echo $result;

    這樣你可能比較看的懂

還有問題?馬上發問,尋求解答。