我正在尝试在mysql字段中记录时差,当我在屏幕上尝试时,值是正确的。将字段提交到数据库后,该字段为空。 我哪里出错了? 该字段在mysql中声明为timestamp并格式化current_timestamp。 代码:
$strStart = date("Y-m-d H:i:s");
sleep(5);
$strEnd = date("Y-m-d H:i:s");
$dteStart = new DateTime($strStart);
$dteEnd = new DateTime($strEnd);
$dteDiff = $dteStart->diff($dteEnd);
//$calc = $dteDiff->format("YYYY-%M-%D %H:%I:%S");
$calc = $dteDiff->format("%Y%Y-%M-%D %H:%I:%S");
echo "Difference: " . $calc;
我正在向db提交$ calc。
答案 0 :(得分:1)
由于MySQL日期的最小值为'1000-01-01 00:00:00'
,因此您无法将此值('0000-00-00 00:00:05
持续5秒)存储为日期/时间值....也不应该,因为它不是&# 39;日期/时间.....日期/时间是一个固定的时间点,而不是一个间隔,即2个日期/次之间的时间间隔。日期间隔没有特定的数据类型。
我建议存储实际的日期/时间值而不是间隔,并且只在需要时计算间隔。
或者,如果您必须存储间隔本身,则将一些秒存储为浮点数,而不是尝试将其强制为格式化的不适当的数据类型;所以请存储5.0
秒。