2

ここからダウンロードした最新のブートストラップ datetimepickerを使用していますが、API の使用時に正しい UTC 日時を取得する際に問題に直面しています。

var dateTimePicker = jQuery('.datetimepicker').datetimepicker();
dateTimePicker.on('changeDate', function(e) {

var eventTarget = jQuery(e.target);

var picker = eventTarget.data('datetimepicker');

console.log( "getDate: " + picker.getDate());
console.log( "getLocalDate: " +  picker.getLocalDate());
console.log( "getLocalDate to UTC: " +  picker.getLocalDate().toUTCString());

出力

 getDate: Wed Apr 24 2013 05:53:40 GMT+0530 (IST)

 getLocalDate: Wed Apr 24 2013 00:23:40 GMT+0530 (IST)

 getLocalDate to UTC: Tue, 23 Apr 2013 18:53:40 GMT

これは、getLocalDate がタイムゾーン GMT +0530 で正しい日時を返し、getLocalDate.toUTCString がローカル日時に対応する UTC 日時を返すことを示しています

   // Considering you are on a GMT-3 timezone and the input contains '2000-01-17 10:p'
   var localDate = picker.getLocalDate(); // localDate === 2000-01-17 07:00
   var utcDate = picker.getDate(); // utcDate === 2000-01-17 10:00

ソースコードで、理解できない次のコードを見つけました。

 function UTCDate() {
   return new Date(Date.UTC.apply(Date, arguments));
 }

コードスニペットnew Date(Date.UTC.apply(Date, arguments))がどのように機能し、何を返す必要があるかを誰かに理解してもらえますか?

これを書いている時点で、上記の UTCDate 関数が返されたのは、私のタイムゾーン GMT +0530 のWed Apr 24 00:19でした。これは、明らかに対応する UTC ではありません。私のタイムゾーンの日時のDateTime。

4

1 に答える 1

1

Date.UTC は、指定された日付から 1970 年 1 月 1 日の午前 0 時までのミリ秒数を返します。

apply メソッドは、別のメソッドを呼び出して親メソッドの引数を渡すことができる JavaScript メソッドです。

これは、UTCDate() メソッドに渡された引数を使用して、初期化子として Date.UTC() を渡して新しい日付を作成しようとしていると考えています。

于 2013-04-30T20:06:44.160 に答える