jQuery datetimepickerのタイムゾーンの更新があるので、サイトを最初にチェックしたいと思うかもしれませんが、ここで私は選択された日付&時間(UTC形式)。
GMTオフセットを使用すると、夏時間を考慮する必要があります。これは悪夢ですので、まずはdatetimepickerを作成し、+0500 GMTの代わりに都市を使用します。
// create ye datetimepicker with timezone options
$('#datetimepicker').datetimepicker({
showTimezone: true,
onSelect: onSelect,
timezoneList: [
{ value: 'America/New_York', label: 'New York'},
{ value: 'America/Chicago', label: 'Chicago' } ,
{ value: 'America/Denver', label: 'Denver' },
{ value: 'America/Los_Angeles', label: 'Los Angeles' }
]);
次に、mde on GithubからtimezoneJS.Dateライブラリをつかむ(注:あなたもちょうどREADMEの指示に従って、お住まいの地域の適切なタイムゾーンファイルをダウンロードする必要があります)、ユーザーが選択した今とき
をonSelectメソッドが呼び出されます。
function onSelect(dateText, dateInst) {
// get the date without the timezone data
var d = $('#datetimepicker').datepicker('getDate');
// init timezoneJS
timezoneJs.timezone.zoneFileBasePath = '/tz';
timezoneJs.timezone.init();
// get the selected timezone
var tz = $('#datetimepicker').data('datepicker').settings.timepicker.timezone
// construct the utcDate with the help of the timezoneJS.Date lib
var utcDate = new timezoneJS.Date(
d.getFullYear(),
d.getMonth(),
d.getDate(),
d.getHours(),
d.getMinutes(),
tz)
var utcLinuxTimestamp = utcDate.getTime()/1000
}
痛みはありませんが、夏時間には関係しません。
UTCタイムスタンプから日付と時間帯でのDateTimePickerを移入するには、この逆のは、次のようになります。あなたが最後の行にSETDATE部分が必要な場合
// init timezone JS
timezoneJs.timezone.zoneFileBasePath = '/tz';
timezoneJs.timezone.init();
// get timezone date JS object
var tz = 'America/New York';
var d = new timezoneJS.Date(timestamp * 1000, tz);
$('#datetimepicker').datetimepicker({
showTimezone: true,
timezoneList: [
{ value: 'America/New_York', label: 'New York'},
{ value: 'America/Chicago', label: 'Chicago' } ,
{ value: 'America/Denver', label: 'Denver' },
{ value: 'America/Los_Angeles', label: 'Los Angeles' }
],
timezone: tz,
defaultDate: d._dateProxy,
onSelect: onSelect
}).datepicker('setDate',d._dateProxy);
私は確かではないんだけど、傷つけることはできませんでした。
時間がローカライズされるかもしれませんが、私は、docで –
@HugoDozoisを見に行くよ - うん...どのように私は「unlocalize」ことができ任意のアイデアを? – Tom
@Tom:[Date]( 'https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date)オブジェクトの' getTimezoneOffset'メソッドはオフセットを分単位で返します。これを使用して、ローカル日付をUTCに変換することができます。 – Martijn