27

我得到了时间:

$today = time();
$date = date('h:i:s A', strtotime($today));

如果当前时间是“上午 1:00:00”,我如何再增加 10 个小时成为上午 11:00:00?

4

7 回答 7

57

strtotime()给你一个数字,代表以秒为单位的时间。要增加它,请添加您要添加​​的相应秒数。10 小时 = 60*60*10 = 36000,所以...

$date = date('h:i:s A', strtotime($today)+36000); // $today is today date

编辑:我假设您在 $today 中有一个字符串时间 - 如果您只是使用当前时间,则更简单:

$date = date('h:i:s A', time()+36000); // time() returns a time in seconds already
于 2009-11-03T07:11:01.233 回答
23
$tz = new DateTimeZone('Europe/London');
$date = new DateTime($today, $tz);
$date->modify('+10 hours');
// use $date->format() to outputs the result.

请参阅DateTime 类 (PHP 5 >= 5.2.0)

于 2009-11-03T07:16:45.077 回答
7

您可以简单地使用DateTime类,OOP Style。

<?php
$date = new DateTime('1:00:00');
$date->add(new DateInterval('PT10H'));
echo $date->format('H:i:s a'); //"prints" 11:00:00 a.m
于 2013-12-27T06:26:26.693 回答
7

$date = date('h:i:s A', strtotime($today . ' + 10 hours'));

(未经测试)

于 2009-11-03T07:10:24.387 回答
5
$date = date('h:i:s A', strtotime($today . " +10 hours"));
于 2009-11-03T07:11:08.910 回答
3

现在显示的完整代码并添加了 10 分钟.....

$nowtime = date("Y-m-d H:i:s");
echo $nowtime;
$date = date('Y-m-d H:i:s', strtotime($nowtime . ' + 10 minute'));
echo "<br>".$date;
于 2013-05-16T15:03:06.170 回答
0

为了增加或减少使用时间,strtotime您可以在第一个参数中使用相对格式。

在您的情况下,将当前时间增加 10 小时:

$date = date('h:i:s A', strtotime('+10 hours'));

如果您需要将更改应用到另一个时间戳,可以指定第二个参数。

笔记:

不建议将此函数用于数学运算。最好DateTime::add()在 PHP 5.3 及更高版本中使用 and DateTime::sub() ,或者在 PHP 5.2 中使用 DateTime::modify() 。

因此,自 PHP 5.3 以来的推荐方式:

$dt = new DateTime(); // assuming we need to add to the current time
$dt->add(new DateInterval('PT10H'));
$date = $dt->format('h:i:s A');

或使用别名:

$dt = date_create(); // assuming we need to add to the current time
date_add($dt, date_interval_create_from_date_string('10 hours')); 
$date = date_format($dt, 'h:i:s A');

在所有情况下,除非指定时区,否则将使用默认时区。

于 2019-04-10T19:39:49.010 回答