我正在使用具有以下格式的jquery datepicker mm / dd / yyyy但我需要它为sql db的yyyy-mm-dd所以我使用它.
$date = date("Y-m-d",strtotime($startdate));
以下内容
$query = "INSERT INTO complete_table ( name, startdate) VALUES ('$_POST[name]', '$date')";
不幸的是,无论输入是什么,我都会在数据库中注册1970-01-01.
对我做错了什么的想法?非常感谢你的帮助.
解决方法:
从date()返回1970-01-01时,表示时间戳不正确.那个日期是UNIX epoch.
说到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');
// ...
标签:picker,php,sql,date 来源: https://codeday.me/bug/20191009/1876191.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。