我正在使用具有以下格式 mm/dd/yyyy 的 jquery 日期选择器,但我需要将它设置为 yyyy-mm-dd 的 sql 数据库,所以我使用它。
$date = date("Y-m-d",strtotime($startdate));
与以下
$query = "INSERT INTO complete_table ( name, startdate) VALUES ('$_POST[name]', '$date')";
不幸的是,无论输入是什么,我都会在数据库中注册 1970-01-01。
知道我做错了什么吗?十分感谢你的帮助。
当你拿到时1970-01-01
从...回来date()
这意味着时间戳不正确。那个日期是UNIX时代.
当涉及 Javascript(在本例中是日期选择器)时,您应该始终确保您得到的实际上是您所期望的。简单地通过它strtotime()
会导致像你这里遇到的问题。
处理日期的一种好方法是使用datetime扩大。它有一个静态方法,DateTime::createFromFormat,这将允许您使用任何格式解析任何日期:
// The value from the datepicker
$dpValue = '12/30/2013';
// Parse a date using a user-defined format
$date = DateTime::createFromFormat('d/m/Y', $dpValue);
// If the above returns false then the date
// is not formatted correctly
if ($date === false) {
header('HTTP/1.0 400 Bad Request');
die('Invalid date from datepicker!')
}
// Using the parsed date we can create a
// new one with a formatting of out choosing
$forSQL = $date->format('Y-m-d');
// ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)