[英]PHP, need to subtract 12 hours and 30 minutes from a DateTime
我有一個 PHP DateTime
變量。
如何在 PHP 運行時從該日期減少或減去 12 小時 30 分鍾?
從 PHP 中的 DateTime 減去 12 小時 30 分鍾:
$date = new DateTime();
$tosub = new DateInterval('PT12H30M');
$date->sub($tosub);
P代表期間。 T 代表時間跨度。
請參閱 PHP 手冊中的DateTime 、 DateTime::sub和DateInterval 。 當然,您必須將DateTime
設置為適當的日期和時間。
嘗試:
$date = new DateTime('Sat, 30 Apr 2011 05:00:00 -0400');
echo $date->format('Y-m-d H:i:s') . "\n";
$date->sub(new DateInterval('PT12H30M'));
echo $date->format('Y-m-d H:i:s') . "\n";
//結果
2011-04-30 05:00:00
2011-04-29 16:30:00
嘗試strtotime()
函數:
$source_timestamp=strtotime("Sat, 30 Apr 2011 05:00:00 -0400"); $new_timestamp=strtotime("-12 hour 30 minute", $source_timestamp); print date('r', $new_timestamp);
嘗試改用這個
//set timezone date_default_timezone_set('GMT'); //set an date and time to work with $start = '2014-06-01 14:00:00'; //display the converted time echo date('Ymd H:i',strtotime('+1 hour +20 minutes',strtotime($start)));
如果您不太熟悉像 PT12H30M 這樣的 DateInterval 規范,您可以使用 DateInterval::createFromDateString 以更易於閱讀的方式進行,如下所示:
$date = new DateTime();
$interval = DateInterval::createFromDateString('12 hour 30 minute');
$date->sub($interval);
或者在子函數中使用直接間隔,如下所示:
$date = new DateTime();
$date->sub(DateInterval::createFromDateString('12 hour 30 minute'));
將其存儲在DateTime
對象中,然后使用DateTime::sub
方法減去時間跨度。
也許它對某些情況有用
$date = new DateTime();
$date->modify('-12 hours -30 minutes');
echo $date->format('H:i:s');
我用了一行,只用了12小時,就當一個小時顯示
$date = new DateTime(); $date->modify('-12 hours'); echo $date->format('H')-0;
我使用了 -0,因為有時它會在數字前面放一個 0,除非我這樣做,很奇怪。
簡單地使用strtotime
echo date("Y-m-d H:i:s",strtotime("-12 hour -30 minutes"));
使用DateTime
類
$date = new DateTime("-12 hour -30 minutes");
echo $date->format("Y-m-d H:i:s");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.