这个简单的事情浪费了我几个小时的时间来努力让它发挥作用,仍然坚持努力...
我有
$time = '10:09';
我想加一小时......
所以,我试过了:
$time = strtotime('+1 hour');
strtotime('+1 hour', $time);
$time = date('H:i', strtotime('+1 hour'));
以上都没有。
你们可以帮助我吗?
感谢。
答案 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)
奇怪的是没有人建议使用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)
奇怪的是没有人建议使用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