正如标题所说的那样,当我从mysql转到我的javascript时,我一直在失去一天,我无法弄明白。当你插入数据库时,你会失去一天(假设我把10月14日的数据库读入10/13/12),而且当我从数据库中读取时,我也失去了一天(我取了10/13 / 12现在读到10/12/12)。
这是我的流程:
//date input from jquery ui datepicker
$('#datepicker'+p).datepicker({numberOfMonths: 3, showButtonPanel: true, dateFormat: "D, d M, yy"});
//date sent to php to upload to mysql so there is a format conversion
$start = date("Y-m-d", strtotime($startdate));
现在下载:
//date taken from mysql no modifications
//date modified to be sent to viewer in a nicer format
var start = $.datepicker.formatDate('D, d M, yy', new Date (item.start));
我的想法:问题似乎发生在两个方面,我很确定我的javascript不是问题,因为只有php转换的一种方式似乎排除了两者。这可能是我的mysql服务器的问题吗?另请注意,日期在mysql中保存为DATE类型!
//as requested my sql code
INSERT INTO classdates (start, end, hours, days, off, notes, type, branch) VALUES(:start, :end, :hours, :days, :off, :notes, :type, :branch)
答案 0 :(得分:2)
我发现我的问题是javascript new Date() function
。它不仅可以转换日期,还可以操纵它。我不得不适应时区的变化。
答案 1 :(得分:1)
您可以在客户端(javascript)将日期转换为unix时间,然后将其与FROM_UNIXTIMESTAMP()
一起插入到mysql表中。它将允许您安全地将客户端的时间转换为服务器时间。