改变时间-1小时

时间:2014-10-31 11:43:49

标签: php

我有一个PHP脚本,它将格式为2014-10-31T11:28:02+00:00的时间戳字符串传递给另一个变量。我怎么能减去一个小时?

例如:

$currDate = $userDate - strtotime('-1 hour');

$userDate包含2014-10-31T11:28:02+00:00

感谢。

6 个答案:

答案 0 :(得分:1)

试试这个:

$str = '2014-10-31T11:28:02+00:00';

$dt = DateTime::createFromFormat(DateTime::ISO8601, $str);
$dt->modify("-1 hours");
echo $dt->format(DateTime::ISO8601);

答案 1 :(得分:1)

strtotime()用于将时间戳转换为以秒为单位的时间,类似于time()为您提供的输出。

也就是说,代码strtotime("-1 hour")将不起作用。

然而,您可以将用户时间戳转换为以秒为单位的时间,然后从中减去一小时,就像这样

$currDate = strtotime($userDate) - 3600; // 1 hour has 3600 seconds

然后通过执行类似的操作将$currDate转换回时间戳

$finalDate = date("YYYY-mm-dd HH:ss", $currDate); // adjust the format to your needs

使用date()进行格式化的方式可以找到here

希望这很有用。

答案 2 :(得分:0)

您可以使用:

$currDate = strtotime($userDate) - 3600;

如果您想保持$userDate的格式,请执行以下操作:

$newUserDate = date("c", strtotime($userDate) - 3600);

答案 3 :(得分:0)

使用DateTime课程。

  • 从您想要的日期格式创建DateTime对象
  • 减去小时
  • 以您想要的格式回复新日期

$date = DateTime::createFromFormat('Y-m-d\TG:i:sP', '2014-10-31T11:28:02+00:00');
$date->sub(new DateInterval('PT1H'));
echo $date->format('Y-m-d\TG:i:sP');

https://eval.in/214784

答案 4 :(得分:0)

我认为问题在于日期格式。日期和时间戳之间必须有空格。以下作品很有效。

$userDate='2014-10-31 T11:28:02+00:00';
echo $currDate = $d= date('d-m-Y',strtotime($userDate. " -1 hour"));

答案 5 :(得分:0)

$currDate = date('Y-m-d', strtotime($userDate .'-1 hour'));

尝试这个........... in" Y-m-d"你添加你的格式如" y-m-d H:i:s"