向PHP中的DateTime对象添加十亿秒

时间:2019-01-25 14:26:13

标签: php date datetime object

给DateTime对象(用户输入变量)增加10亿秒时,我遇到了很多麻烦,但没有成功。

用户以YYYY-m-d H:i:s格式输入其出生日期(DOB)。然后将其转换为DateTime()。然后,将10亿秒添加到DOB。输出为DOB + 10亿秒,格式为YYYY-m-d H:i:s。

我不知道该怎么做,也没有从其他解决此问题的帖子中找到合适的例子。

欢迎任何帮助。谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用DateTime :: add函数http://php.net/manual/en/datetime.add.php

$date = new DateTime(DOB);
$date->add(new DateInterval('PT1000000000S'));
echo $date->format('Y-m-d H:i:s') . "\n";

答案 1 :(得分:0)

echo date("Y-m-d H:i:s", (strtotime('1991-12-13 06:25:12') + 1000000000));

您可以在一行代码中完成此操作。使用strtotime转换日期并添加秒。不过在dob字段中要求H:i:s很奇怪。

输出为2023-08-21 09:11:52(也通过here进行了两次检查)

答案 2 :(得分:0)

老兄,我一直讨厌做日期时间逻辑。以我的经验,最简单的方法是将所有内容都转换为Unix时间戳。我的整数比DateTime对象更易于操作(尽管这种思想可能是#backintheday的保留)。

您的逻辑是否类似于以下内容:

$dob = strtotime('2018-1-1 12:00:00');
echo $dob;
echo  "\n";
$sum = ($dob + 1000000000);
echo date('r', $sum);

那应该让您朝着想要的方向前进。

*请注意,您的计算机必须是64位,否则由于32位整数的限制,2039年之后的日期将无法正常工作。