簡體   English   中英

PHP,需要從 DateTime 中減去 12 小時 30 分鍾

[英]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 手冊中的DateTimeDateTime::subDateInterval 當然,您必須將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM