添加1小时到时间变量

41 php

这个简单的事情浪费了我几个小时的时间来试图让它工作,但仍然努力解决...

我有

$time = '10:09';
Run Code Online (Sandbox Code Playgroud)

我想给这个增加一个小时......

所以,我试过了:

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

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

$time = date('H:i', strtotime('+1 hour'));
Run Code Online (Sandbox Code Playgroud)

以上都没有奏效.

你能帮助我吗?

谢谢.

pau*_*ol. 82

为我工作..

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

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

echo $time;//11:09
Run Code Online (Sandbox Code Playgroud)

说明:

strtotime('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
Run Code Online (Sandbox Code Playgroud)

time()也创建了一个数字时间戳,但现在.您可以以相同的方式使用它.

$timestamp = time() + 60*60; // now + 1 hour
Run Code Online (Sandbox Code Playgroud)


Aza*_*lvi 21

你可以这样做

    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'));
Run Code Online (Sandbox Code Playgroud)


Fro*_*y Z 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);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看PHP手册以获取strtotime(),strftime()date().

顺便说一下,在你的初始代码中,你需要添加一些引号,否则你会得到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
Run Code Online (Sandbox Code Playgroud)


May*_*iya 10

试试这个它对我有用.

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


Lea*_*ner 7

2020 更新

奇怪的是,没有人提出 OOP 方式:

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

或者

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

或者

$date = new \DateTime(); //now
$date->add(new \DateInterval('PT1H'));//add 1 hour
Run Code Online (Sandbox Code Playgroud)

将其提取为字符串格式:

var_dump($date->format('Y-m-d H:i:s'));
Run Code Online (Sandbox Code Playgroud)


小智 5

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

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