$datetime_from = '2013-08-27 14:17:00';
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));
結果是:分鐘添加到時間字符串
$datetime_till = '1970-01-01 01:00:00'
預期的結果是
$datetime_till = '2013-08-27 15:02'
如何獲得呢?
$datetime_from = '2013-08-27 14:17:00';
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));
結果是:分鐘添加到時間字符串
$datetime_till = '1970-01-01 01:00:00'
預期的結果是
$datetime_till = '2013-08-27 15:02'
如何獲得呢?
它會像
$datetime_from = strtotime('2013-08-27 14:17:00');
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));
您需要$datetime_from
轉換爲時間
否則容易,你也可以嘗試像(蔭不知道)
$dateTime = DateTime::createFromFormat('m/d/Y h:i', $datetime_from);
$datetime_from = $dateTime->format('U');
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));
它提供了相同的答案:1970-01-01 01:45:00 –
嘗試我編輯的答還,但我不知道它會 – Gautam3164
可能問題是,var_dump($ datetime_from);輸出「'2013-08-27 17:00:00'」 –
試戴
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",strtotime($datetime_from)));
您應該使用DateTime類而不是舊的功能性php。
$dateFrom = new \DateTime('2013-08-27 14:17:00');
$dateTill = new \DateTime('2013-08-27 14:17:00');
$dateTill->modify('+45 minutes');
// test if the dates are correct
echo $dateFrom->format('Y-m-d H:i:s'). ' - '.$dateTill->format('Y-m-d H:i:s');
有許多其他方法可以從DateTime類中受益。
此行失敗:$ datetime_till = new DateTime($ datetime_from); –
可能問題在於var_dump($ datetime_from);輸出「'2013-08-27 17:00:00'」。但如何解決它? –
在DateTime之前添加反斜槓。 $ datetime_from必須是具有有效格式日期的字符串。 –
您可以使用DateTime對象,爲此在程序風格PHP這樣的:
$datetime_from = date_create('2013-08-27 14:17:00'); // Create a date object from the start date
$datetime_till = date_add($datetime_from, date_interval_create_from_date_string('45 minutes')); // Add the interval to the starting time
echo date_format($datetime_till, 'Y-m-d H:i'); // Format the date how you want it to be output
希望這有助於。
Use:
$datetime_from = strtotime('2013-08-27 14:17:00');
$datetime_till = date("Y-m-d H:i",$datetime_from+(45*60));
使用DateTime日期/時間修改類:
$datetime_from = new DateTime('2013-08-27 14:17:00');
$datetime_till = clone $datetime_from;
$datetime_till->modify('+45 minutes');
echo
'From: ' . $datetime_from->format('Y-m-d H:i:s') . "\n".
'Till: ' . $datetime_till->format('Y-m-d H:i:s');
輸出將是:
From: 2013-08-27 14:17:00
Till: 2013-08-27 15:02:00
有效modify()格式在Date and Time Formats解釋。
請注意,各種strtotime()示例不日期/時間差計算正確。最簡單的例子是2013-03-31 21:00
和2013-03-30 21:00
之間的差異。哪一個肉眼是確切的1天的差異,但如果你減去這2個日期,你會得到82800
秒,這是0.95833333333333
天。這是因爲從冬季到夏季的時間變化。 DateTime正確處理閏年和時區。
http://stackoverflow.com/questions/8169139/adding-minutes-to-date-time-in-php – mkaatman
$ datetime_from是否來自數據庫? – Cups