PHP,需要从 DateTime 中减去 12 小时 30 分钟

Posted

技术标签:

【中文标题】PHP,需要从 DateTime 中减去 12 小时 30 分钟【英文标题】:PHP, need to subtract 12 hours and 30 minutes from a DateTime 【发布时间】:2011-08-11 17:58:42 【问题描述】:

我有一个 php DateTime 变量。

如何在 PHP 运行时从该日期缩短或减去 12 小时 30 分钟?

【问题讨论】:

如果是 mysql,我会使用 DATE_SUB() 您考虑选择一个答案吗? 【参考方案1】:

我用在一条线上,只用了 12 个小时,只是作为一个小时显示

$date = new DateTime(); $date->modify('-12 hours'); echo $date->format('H')-0;

我使用了 -0,因为有时它会在数字前面放一个 0,除非我这样做,奇怪。

【讨论】:

【参考方案2】:

也许对某些情况有用

$date = new DateTime();
$date->modify('-12 hours -30 minutes');

echo $date->format('H:i:s');

【讨论】:

【参考方案3】:

如果您对像 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'));

【讨论】:

【参考方案4】:

简单地使用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");

【讨论】:

【参考方案5】:

尝试改用这个

//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('Y-m-d H:i',strtotime('+1 hour +20 minutes',strtotime($start)));

【讨论】:

【参考方案6】:

从 PHP 中的 DateTime 中减去 12 小时 30 分钟:

$date = new DateTime();
$tosub = new DateInterval('PT12H30M');
$date->sub($tosub);

P 代表周期。 T 代表时间跨度。

请参阅 PHP 手册中的 DateTime、DateTime::sub 和 DateInterval。当然,您必须将DateTime 设置为适当的日期和时间。

【讨论】:

【参考方案7】:

尝试:

$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

【讨论】:

【参考方案8】:

试试strtotime()函数:

$source_timestamp=strtotime("2011 年 4 月 30 日星期六 05:00:00 -0400");
$new_timestamp=strtotime("-12 小时 30 分钟", $source_timestamp);
打印日期('r', $new_timestamp);

【讨论】:

【参考方案9】:

Here is detailed description of date function,

【讨论】:

在这种情况下这不是很有帮助。他真的应该使用DateTime 对象。 是的更新了它.. 实际上我在 datetime 对象上到处都看到了他的多个问题,所以这对他来说很方便。【参考方案10】:

将其存储在DateTime 对象中,然后使用DateTime::sub 方法减去时间跨度。

【讨论】:

以上是关于PHP,需要从 DateTime 中减去 12 小时 30 分钟的主要内容,如果未能解决你的问题,请参考以下文章

从日期时间减去 1 年

如何从两个选择语句中减去值

从熊猫的日期时间列中减去一年

从 Timestamp php 中减去 6 个月的最简单方法是啥

如何从Javascript日期中减去php日期

如何从日期中减去一天?