$endTransaction
和$now
是字符串。
$time = '2017-10-05 14:54:03';
$now = date('Y-m-d H:i:s');
$endTransaction = date('Y-m-d H:i:s', strtotime($time. ' + 1 day'));
echo($endTransaction."\n");
echo($now."\n");
It prints:
2017-10-06 14:54:03
2017-10-05 11:45:39
減法不是字符串的有效操作。它只能處理數字。上面的字符串是converted to numbers。轉換隻使用字符串中最左邊的數字,直到它到達不是數字的第一個字符。
上述兩個字符串在轉換爲數字時產生2017
,它們的差值當然是0
。
與PHP的日期的最簡便的方法是使用DateTime
及其相關類。
// Convert the input string to a DateTime object
$then = new DateTime('2017-10-05 14:54:03');
// Add 1 day
$then->add(new DateInterval('P1D'));
// Get the current date and time
$now = new DateTime('now');
// Compute the difference; it is a DateInterval object
$diff = $now->diff($then);
// Display the dates and the difference
echo('Then: '.$then->format("Y-m-d H:i:s\n"));
echo('Now : '.$now->format("Y-m-d H:i:s\n"));
echo('Remaining: '.$diff->format("%R%a days, %h hours, %i minutes, %s seconds.\n"));
輸出:
Then: 2017-10-06 14:54:03
Now : 2017-10-05 12:36:25
Remaining: +1 days, 2 hours, 17 minutes, 38 seconds.
這不是SQL隊友,你basicly試圖DIFF字符串。 –
請嘗試使用[DateTime](http://php.net/manual/en/class.datetime.php)對象。 – CD001
和日期時間差異功能 – user2867342