2011-04-07 38 views
2

我有从Datepicker返回的日期格式为(yy-mm-dd),它将字符串返回为2011-04-22。jQuery UI的“日期选择器”模块日期不能保存到MySQL

当我想将它插入到数据类型为DATE的列中的MySQL表中时,我得到了保存的0000-00-00。浏览SO,我发现了关于FROM_UNIXTIME的建议,但是这给了我1970-01-01的日期。

任何帮助?

+0

你可以发布你的代码建立你的查询吗? – Headshota 2011-04-07 08:08:16

+0

1970-01-01是UNIXTIME允许的最早时间,它基本上等同于0000-00-00。您只需确保输出的字符串的格式与MYSQL中的日期格式相匹配 – 2011-04-07 08:36:30

+0

不正确。您可以使用负面的时间戳数字来获取早于1970-01-01的Unix Epoch的日期 – Hal 2011-04-07 08:44:40

回答

15

划分时间戳您可以用dateformat选项尝试日期选择器

$('#date-picker').datepicker({ 
    dateFormat : 'yy-mm-dd' 
}); 

如果你想给自定义格式的观点,在插入数据库之前,您可能需要将日期转换为mysql格式。 `

$insertDate = date("Y-m-d",strtotime($date))` 
1

您需要验证数据类型是设置为一个MySQL DATE字段(而不是需要格式化,如“YYYY-MM-DD HH:MM:SS”的时间的日期时间字段)

另外, MySQL DATE数据类型正在寻找一个4位数字的年份字段,您需要有一个2位数的字段,因此请确保您的日期选择器输出为yyyy-mm-dd。

$.datepicker.formatDate('yyyy-mm-dd'); 

而且,如果你试图让这与UNIX时间戳去,不要忘了Unix的时间戳Javascript中包括凡在PHP/MySQL的,他们将被截断,以秒毫秒。所以,如果你在MySQL中使用FROM_UNIXTIME(时间),请确保您通过1000

0

的jQuery UI的日期选择器还拥有可以用来改变字符串成日期本地解析方法。字符串需要正确格式化才能使其正常工作。

$.datepicker.parseDate("yy-mm-dd", "2007-01-26"); 
相关问题