添加1小时到时间变量

时间:2011-12-18 13:43:27

标签: php

这个简单的事情浪费了我几个小时的时间来努力让它发挥作用,仍然坚持努力...

我有

$time = '10:09';

我想加一小时......

所以,我试过了:

$time = strtotime('+1 hour');

strtotime('+1 hour', $time);

$time = date('H:i', strtotime('+1 hour'));

以上都没有。

你们可以帮助我吗?

感谢。

10 个答案:

答案 0 :(得分:18)

你可以这样做

    echo date('Y-m-d H:i:s', strtotime('4 minute'));
    echo date('Y-m-d H:i:s', strtotime('6 hour'));
    echo date('Y-m-d H:i:s', strtotime('2 day'));

答案 1 :(得分:15)

$time = '10:09';
$timestamp = strtotime($time);
$timestamp_one_hour_later = $timestamp + 3600; // 3600 sec. = 1 hour

// Formats the timestamp to HH:MM => outputs 11:09.
echo strftime('%H:%M', $timestamp_one_hour_later);
// As crolpa suggested, you can also do
// echo date('H:i', $timestamp_one_hour_later);

查看strtotime()strftime()date()的PHP手册了解详情。

顺便说一下,在你的初始代码中,你需要添加一些引号,否则你会得到PHP语法错误:

$time = 10:09; // wrong syntax
$time = '10:09'; // syntax OK

$time = date(H:i, strtotime('+1 hour')); // wrong syntax
$time = date('H:i', strtotime('+1 hour')); // syntax OK

答案 2 :(得分:7)

试试这对我有用。

$time="10:09";
$time = date('H:i', strtotime($time.'+1 hour'));
echo $time;

答案 3 :(得分:5)

对于这个问题,请遵循以下代码:

$time= '10:09';
$new_time=date('H:i',strtotime($time.'+ 1 hour'));
echo $new_time;`
// now output will be: 11:09

答案 4 :(得分:4)

2019更新

奇怪的是没有人建议使用OOP方式:

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT3600S'));//add 3600s / 1 hour

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT60M'));//add 60 min / 1 hour

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT1H'));//add 1 hour

以字符串格式提取它:

var_dump($date->format('Y-m-d H:i:s'));

我希望对您有帮助

答案 5 :(得分:1)

简单明智的解决方案:

date("H:i:s", time()+3600);

答案 6 :(得分:0)

谨防添加3600 !!由于unix时间戳格式在白天之前使用了飞蛾,因此可能会在日期更改时出现问题。

e.g。 2012-03-02 23:33:33将成为2014-01-13 13:00:00通过添加3600更好的使用mktime和日期函数,他们可以处理这个和添加25小时等事情。

答案 7 :(得分:0)

您可以尝试以下代码:

$time = '10:09';

echo date( 'H:i', strtotime( '+1 hour' , strtotime($time) ) );

答案 8 :(得分:0)

2020更新

奇怪的是没有人建议使用OOP方式:

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT3600S'));//add 3600s / 1 hour

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT60M'));//add 60 min / 1 hour

OR

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT1H'));//add 1 hour

以字符串格式提取它:

var_dump($date->format('Y-m-d H:i:s'));

我希望对您有帮助

答案 9 :(得分:-2)

2021 年更新

为我工作..

$text = str_replace(':PM', '', '19:00:PM');   //19:00:PM  //Removes :PM
$text = str_replace(':AM', '', $text);   //Removes :AM
$time = strtotime($text);   //19:00
$startTime = date("H:i:A", strtotime('- 1 hours', $time));
$endTime = date("H:i:A", strtotime('+ 1 hours', $time));

输出:

echo $startTime; //18:00:PM
echo $endTime;  //20:00:PM