我有一个带有两个datetime字段的表单。用户输入日期(yyyy-mm-dd)和时间(3个框);小时,分钟,上午/下午)。
由于某种原因,第一个时间没有被保存为24小时。
以下数据是输入的结果:
2011-1-1
下午四点半我正在使用strtotime()将字符串转换为日期时间格式。
$dateOccured = date('Y-m-d H:i:s', strtotime($dateOccurred));
$dateResolved = date('Y-m-d H:i:s', strtotime($dateResolved));
如果我使用print_r()来查看结果,它显示正确。
发生日期:
[year] => 2011
[month] => 1
[day] => 1
[hour] => 16
[minute] => 30
[second] => 0
[fraction] => 0
[warning_count] => 0
日期解决[year] => 2011
[month] => 1
[day] => 1
[hour] => 16
[minute] => 30
[second] => 0
[fraction] => 0
[warning_count] => 0
都显示正确的时间:16:30(或4:30PM)。当我查看我的数据库时,如下所示:
日期发生
2011-01-01 04:30:00
日期解决2011-01-01 16:30:00
我知道这是dateOccurred变量的问题,因为如果我在查询中将其替换为daterresolved,它会被正确插入。我不明白的是问题出在哪里?我错过了什么导致这种情况?
谢谢。
如果它是数据库,在查询中用daterresolved代替dateOccurred变量不重要吗?下面是INSERT查询
"INSERT INTO
incidents (
incidentNumber, date, itFunction, issue, severity,
owner, dateOccurred, dateResolved, locationsImpacted, businessImpact,
rcaRequired, rcaReceived, rootCause, notes)
VALUES (
'{$incidentNumber}', '{$date}', '{$itFunction}', '{$issue}', '{$severity}',
'{$owner}', '{$dateOccurred}', '{$dateResolved}', '{$locationsImpacted}', '{$businessImpact}',
'{$rcaRequired}', '{$rcaReceived}', '{$rootCause}', '{$notes}')"
找到问题了…为了弄明白这件事,我已经绞尽脑汁一个小时了!$dateOccured
(单R…rrrrrr)!把这个放到尴尬栏。
我了解到使用
可以使错误报告更有用error_reporting(E_ALL | E_NOTICE)
感谢Chronial。