Php 向时间变量添加1小时

Php 向时间变量添加1小时,php,datetime,time,Php,Datetime,Time,我有一个时间,我想增加一个小时: $time = '10:09'; 我试过: $time = strtotime('+1 hour'); strtotime('+1 hour', $time); $time = date('H:i', strtotime('+1 hour')); 但是上面的工作都不适合我 $timestamp = strtotime('10:09') + 60*60; $time = date('H:i', $timestamp); echo $time;//11:

我有一个时间,我想增加一个小时:

$time = '10:09';
我试过:

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

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

$time = date('H:i', strtotime('+1 hour'));
但是上面的工作都不适合我

$timestamp = strtotime('10:09') + 60*60;

$time = date('H:i', $timestamp);

echo $time;//11:09
$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));

说明:

strotime('10:09')
以秒为单位创建一个数字时间戳,类似于
1510450372
。只需添加或删除所需的秒数,然后使用
date()
将其转换回人类可读的格式

$timestamp = strtotime('10:09') + 60*60; // 10:09 + 1 hour
$timestamp = strtotime('10:09') + 60*60*2; // 10:09 + 2 hours
$timestamp = strtotime('10:09') - 60*60; // 10:09 - 1 hour
time()
也会创建一个数字时间戳,但只针对现在。你可以用同样的方法使用它

$timestamp = time() + 60*60; // now + 1 hour
您可以使用:

$time = strtotime("10:09") + 3600;
echo date('H:i', $time);
或添加日期:

有关详细信息,请参阅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

小心添加3600!!由于unix时间戳格式在日前使用MOST,因此在日更改时可能会出现问题

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

你可以这样做

    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'));

简单智能的解决方案:

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

试试这个,它对我有用

$time="10:09";
$time = date('H:i', strtotime($time.'+1 hour'));
echo $time;
您可以尝试以下代码:

$time = '10:09';

echo date( 'H:i', strtotime( '+1 hour' , strtotime($time) ) );
2020年更新 奇怪的是,没有人提出OOP方式:

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

以字符串形式提取,格式为:

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

2021年更新

为我工作

$timestamp = strtotime('10:09') + 60*60;

$time = date('H:i', $timestamp);

echo $time;//11:09
$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

$time=10:09
不是定义时间的正确方法,非常简单,谢谢$timeFormat=日期(“d/m/y H:i:s”,标准时间($timeFormat.+8小时”);就我而言,我想增加1.30小时。给予+1.30没有像预期的那样起作用。有什么方法可以做到这一点吗?@Pravin
$time=date('H:i',strottime('time.+1小时',+30分钟))如果我必须减少一小时('10:09')-60*60;会有用吗?@TarangP是的
strotime('10:09')
以秒为单位创建时间戳。只需添加或删除所需的秒数,时间变量在哪里传递?所有这些都基于它当前运行的时间
echo $startTime; //18:00:PM
echo $endTime;  //20:00:PM