1

JavaScript 日付オブジェクトに変換しようとしている入力値を「わかりやすい」表示で日付/時刻ピッカーを使用しています。日付を選択すると、次の形式になります。

2013 年 10 月 21 日 09:00

次に、次の関数を使用して JavaScript オブジェクトに変換しようとします。

function pickerDateToJavascriptObj(dateIn)
{
    dateIn = dateIn.split(/[- :]/);
    dateIn[0] = getMonthNumber(dateIn[0]);
    outDate = new Date(dateIn[2],dateIn[0],dateIn[1],dateIn[4],dateIn[5], "00");
    console.log(outDate);
    return outDate; 
}

私は自分のページのピッカーに「開始日」と「終了日」の日付を記入する必要があります。フォームを送信し、outDates を console.log に送信すると、日付は正しくオブジェクトに変換されますが、タイム ゾーンが一貫して異なります。「開始日」については、コンソールに次のように表示されます。

Date {Mon Oct 21 2013 09:00:00 GMT+0100 (GMT Standard Time)}

「終了」日については、次のようになります。

Date {Thu Oct 31 2013 09:00:00 GMT+0000 (GMT Daylight Time)}

2 つの日付の標準時間と夏時間の違いに注目してください。

この不一致の原因は何ですか?

2 つの入力は次のとおりです。

<input type="text" placeholder="Start Date/Time" name="eventStart" id="eventStart" class="dateTimePicker" readonly="readonly">
<input type="text" placeholder="End Date/Time" name="eventEnd" id="eventEnd" class="dateTimePicker" readonly="readonly">
4

2 に答える 2

2

あなたは英国にいて、Firefox を使用しているようです。

夏時間 (別名「英国夏時間」)は 10 月 27 日に終了するため、開始日は切り替え前であり、終了日は切り替え後です。

オフセットは正しいが、名前が逆になっているため、FireFox のバグも目撃しています。

于 2013-10-21T16:51:38.790 に答える
0

(手動で解析する代わりに) 次のようにフォーマットされた日付を取得します。

var myDate= $("#datepicker").datepicker({ dateFormat: 'dd-mm-yy' }).val();

API ドキュメント: http://api.jqueryui.com/datepicker/#option-dateFormat

次のようにフォーマットされた時刻を取得します。

var myTime = $.datepicker.parseTime('HH:mm:ss', $("#datepicker").val());

API ドキュメント: http://trentrichardson.com/examples/timepicker/#tp-formatting

于 2013-10-21T10:20:39.957 に答える