0

タイトルが示すように、mysql から javascript に移行するたびに 1 日を失ってしまい、それを理解できません。データベースに挿入するときに 1 日を失います (たとえば、10/14/12 を入力すると、データベースは 10/13/12 を読み取るとします)、データベースから読み取るときにも 1 日を失います (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 が問題ではないと確信しています。これは私の mysql サーバーの問題でしょうか? また、日付は DATE 型として mysql に保存されることに注意してください。

//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)
4

2 に答える 2

2

私の問題は javascript であることがわかりましたnew Date() function。日付を変換するだけでなく、操作も行います。タイムゾーンの変更に対応する必要がありました。

于 2012-10-14T07:34:07.563 に答える
1

クライアント側(javascript)で日付をunixtimeに変換してから、それFROM_UNIXTIMESTAMP()をmysqlテーブルに挿入できます。これにより、クライアントの時間をサーバー時間に安全に変換できます。

于 2012-10-14T06:50:59.443 に答える