gpt4 book ai didi

php 将值与存储在表中的用户定义的公式进行匹配并执行请求的数学运算

转载 作者:行者123 更新时间:2023-11-29 22:13:28 24 4
gpt4 key购买 nike

我有一个用户定义的公式作为字符串“({Arrival_Date}-{Departure_Date})”存储在数据库表中。然后我从表中选择了以下行。

出发日期 到达日期
2015-01-01 2015-03-01
2015-02-01 2015-02-10

我想使用公式 ({Arrival_Date}-{Departure_Date}) 并获取所有行的天数差异,即 (2015-03-01 - 2015-01-01) = 2 等。关于如何将值与我的公式相匹配有什么建议吗?

提前谢谢您。

最佳答案

将两个日期存储在两个变量中后,您可以尝试以下操作:

<?php
$str1 = '2015-01-01';
$str2 = '2015-03-01';
$datetime1 = new DateTime($str1);
$datetime2 = new DateTime($str2 );
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>

顺便说一句,我不知道日期时间接受哪种格式(YYYY-MM-DD 或 YYYY-DD-MM),或者它是否取决于服务器的国际选项。如果它不能正常工作,您可以使用 DateTime::createFromFormat 手动指定字段。

编辑:

我对花括号模板了解不多,但如果您想获得差异结果,可以将 DateTime 对象转换为时间戳表示形式:

$datetime1 = new DateTime($str1);
$datetimeTS1 = $datetime1->getTimestamp();
// Or, alternatively, you can use
$datetimeTS1 = $datetime1->format("U");

对于 1970 年 1 月 1 日之后的日期,这两个选项应该相同。

两个变量 $datetimeTS1$datetimeTS2 现在是两个整数。它们的差异在于以秒表示的两个日期之间的差异(由于一天有 86400 秒,因此您现在只需将结果除以 86400)。也可以这样写

$datetimeTS1 = $datetime1->getTimestamp() / 86400;
$datetimeTS2 = $datetime2->getTimestamp() / 86400;

因为这两个日期没有“半天”。

关于php 将值与存储在表中的用户定义的公式进行匹配并执行请求的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31408113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com