php – date()返回1970-01-01

我正在使用具有以下格式的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');

// ...
上一篇:如何在android中禁用未来的日期选择器


下一篇:微信小程序 mpvue + picker(mode=selector)