似乎在日期转换中失去了一天

时间:2012-10-14 06:25:03

标签: php javascript mysql date time

正如标题所说的那样,当我从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)

2 个答案:

答案 0 :(得分:2)

我发现我的问题是javascript new Date() function。它不仅可以转换日期,还可以操纵它。我不得不适应时区的变化。

答案 1 :(得分:1)

您可以在客户端(javascript)将日期转换为unix时间,然后将其与FROM_UNIXTIMESTAMP()一起插入到mysql表中。它将允许您安全地将客户端的时间转换为服务器时间。