我有一个包含两个日期时间字段的表单。用户输入日期(yyyy-mm-dd)和时间(3个盒子;小时,分钟,上午/下午)。
出于某种原因,第一个没有被保存为24小时。
以下数据是输入的结果:
2011-1-1 下午4:30
我正在使用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:30)。当我查看我的数据库时,这就是显示的内容。
发生日期
2011-01-01 04:30:00
已解决的日期
2011-01-01 16:30:00
我知道这是dateOccurred变量的问题,因为如果我在查询中用dateResolved替换它,它会被正确插入。我无法弄清楚问题出在哪里?我错过了什么导致了这个?
谢谢。
如果是数据库,不会在查询中用dateResolved替换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}')"
它们都是日期时间字段。
答案 0 :(得分:4)
发现问题......错别字!我一直在靠墙撞击一小时试图解决这个问题! $dateOccured
(单身...... rrrrrr)!把这个放在令人尴尬的栏目中。
我了解到使用
可以使错误报告更有用error_reporting(E_ALL | E_NOTICE)
感谢Chronial。