我尝试在运行 PHP 8.x 和 MariaDB 10.x 的 Windows XAMP 上用 SQL 进行时间计算。我需要获取两个日期时间之间的秒数。
SELECT
TIME_TO_SEC(TIMEDIFF(NOW(),'2023-12-05 21:19:22')) AS td,
TIMESTAMPDIFF(SECOND,NOW(),'2023-12-05 21:19:22') AS tsd
“2023-12-05 21:19:22”部分是固定时间部分,从现在开始。每次运行此查询时,它都会给出固定日期时间和 NOW() 的秒数差异; 两种计算都给出正确的秒数。 但在随机的一点上,差异会减少数千秒。看起来检索到的时间有时是夏令时有时不是?
这是软件组合中的已知错误吗?
如果是这样,我预计这将在生产服务器(linux)上运行良好
我可以使用其他方法吗?
我认为这种行为是由于时间服务器造成的。有时会给出夏令时,有时则没有。在 PHP 和 mysql 中我定义了 default_time_zone。希望这能解决问题。