मुझे लगता है कि jQuery डेटीमिपिकर के लिए कुछ टाइमज़ोन अपडेट हैं ताकि आप पहले साइट को देखना चाहें, हालांकि यहां मैंने जो किया है चयनित दिनांक & यूटीसी प्रारूप में समय।
पहले डेटाटेम्पीकर बनाएं और +0500 जीएमटी के बजाय शहरों का उपयोग करें क्योंकि यदि आप जीएमटी ऑफ़सेट का उपयोग करते हैं तो आपको डेलाइट बचत खाते में लेना होगा - और यह एक दुःस्वप्न है।
// 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 निर्देशों का पालन करें की आवश्यकता होगी)
अब जब उपयोगकर्ता एक का चयन करता है ऑन-सिलेक्ट विधि को कॉल करने की तिथि।
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
}
बिल्कुल दर्द रहित नहीं है, लेकिन यह आपके लिए डेलाइट बचत सामग्री का ख्याल रखता है।
इस के पीछे एक यूटीसी टाइमस्टैम्प से एक तिथि और एक समय क्षेत्र के साथ एक DateTimePicker पॉप्युलेट करने के लिए इस तरह दिखता है:
// 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);
मैं अगर आप अंतिम पंक्ति पर setDate भाग की जरूरत है कुछ नहीं कर रहा हूँ, लेकिन चोट नहीं पहुंची
समय स्थानीयकृत हो सकता है, मैं दस्तावेज़ देख –
@HugoDozois जाता हूँ - हाँ ... किसी भी विचार कैसे मैं "unlocalize" कर सकते हैं यह ?? – Tom
@ टॉम: [डेट] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date) ऑब्जेक्ट की 'getTimezoneOffset' विधि) मिनट में ऑफ़सेट लौटाती है। आप स्थानीय तारीख को यूटीसी में बदलने के लिए इसका उपयोग कर सकते हैं। – Martijn