Ich habe gehört, dass es einige Zeitzonenupdates für den jQuery datetimepicker gibt, also könntest du die Seite zuerst überprüfen wollen, aber hier ist, was ich getan habe, um das zu bekommen Ausgewähltes Datum & Uhrzeit im UTC-Format.
Erstellen Sie zuerst datetimepicker und verwenden Sie Städte anstelle von +0500 GMT, denn wenn Sie GMT-Offsets verwenden, müssen Sie die Sommerzeit berücksichtigen - und das ist ein Albtraum.
// 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' }
]);
Als nächstes greifen die timezoneJS.Date Bibliothek von mde on Github (Hinweis: Sie werden auch die entsprechenden Zeitzone-Dateien für Ihre Region herunterladen müssen, folgen Sie einfach den Anweisungen README)
Nun, wenn der Benutzer eine auswählt Datum, an dem die Methode onSelect aufgerufen wird.
Nicht gerade schmerzlos, aber es kümmert sich um das Tageslicht sparen Sachen für Sie.
die Rückseite dieses einen Datetimepicker mit einem Datum und einer Zeitzone von einem UTC-Zeitstempel zu bevölkern wie folgt aussieht:
// 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);
Ich bin nicht sicher, ob Sie den setDate Teil in der letzten Zeile benötigen, aber konnte nicht weh tun.
Die Zeit lokalisiert werden kann, werde ich –
@HugoDozois im doc gehen sehen - Ja ... eine Idee, wie ich kann "unlocalize" it ?? – Tom
@Tom: Die 'getTimezoneOffset'-Methode des [Date] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date) -Objekts gibt den Offset in Minuten zurück. Damit können Sie ein lokales Datum in UTC umwandeln. – Martijn