ここからダウンロードした最新のブートストラップ 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。