-1
$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'

如何得到它?

4

6 回答 6

1

它会像

$datetime_from = strtotime('2013-08-27 14:17:00');
$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",$datetime_from));

您需要转换$datetime_from为时间

Orelse你也可以试试(我不确定

$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));
于 2013-08-27T12:50:56.510 回答
0

尝试-

$datetime_till = date("Y-m-d H:i",strtotime("+45 minutes",strtotime($datetime_from)));
于 2013-08-27T12:52:18.677 回答
0
Use:

$datetime_from = strtotime('2013-08-27 14:17:00');

$datetime_till = date("Y-m-d H:i",$datetime_from+(45*60));
于 2013-08-27T13:09:53.407 回答
0

您应该使用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 类中受益的许多其他方法。

于 2013-08-27T12:56:02.657 回答
0

您可以使用 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

希望这可以帮助。

于 2013-08-27T13:04:52.460 回答
0

使用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()格式。


请注意,各种strtotime()示例在日期/时间差计算中不正确。2013-03-31 21:00最简单的例子是和之间的差异2013-03-30 21:00。这对于肉眼来说是精确的 1 天差异,但如果你减去这 2 个日期,你会得到82800秒,即0.95833333333333天。这是因为时间从冬季时间更改为夏季时间。DateTime正确处理闰年和时区。

于 2013-08-27T13:30:06.880 回答