给DateTime对象(用户输入变量)增加10亿秒时,我遇到了很多麻烦,但没有成功。
用户以YYYY-m-d H:i:s格式输入其出生日期(DOB)。然后将其转换为DateTime()。然后,将10亿秒添加到DOB。输出为DOB + 10亿秒,格式为YYYY-m-d H:i:s。
我不知道该怎么做,也没有从其他解决此问题的帖子中找到合适的例子。
欢迎任何帮助。谢谢
答案 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年之后的日期将无法正常工作。