2015-10-16 3 views
5

मैं जावास्क्रिप्ट के साथ क्लाइंट ब्राउज़र पर कस्टम टाइमज़ोन कैसे ठीक कर सकता हूं?हमेशा यूटीसी + 0 का उपयोग करें - जावास्क्रिप्ट/कोणीय के साथ क्लाइंट ब्राउज़र पर कस्टम टाइमज़ोन को ठीक करें

उदाहरण के लिए, कोणीय पर मेरे पास बैकऑफिस से "2015-10-16T00: 00: 00.000Z" दिनांक है।

मैं एक प्रदर्शन (यूटीसी -4 न्यूयॉर्क के साथ या UTC + 2 फ्रांस) के साथ करना चाहते हैं, हमेशा: 16/10/2015

पढ़ें:

अगर मैं यूटीसी का उपयोग न्यूयॉर्क पर, मेरे पास है: 15/10/2015।

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p> 

लिखें:

मैं समय-क्षेत्र से हटाने के लिए तारीख प्रोटोटाइप toJSON संशोधित:

// Remove TimeZone 
Date.prototype.toJSON = function(){ 
    return moment(this).format('YYYY-MM-DD') + 'T00:00:00.000Z'; 
}; 
+0

का उपयोग आप हमें कुछ कोड दिखाएगी ... कैसे आपको लगता है कि उस दिनांक को प्रदर्शित कर रहे हैं? उदाहरण के लिए यूरोप में ग्रीष्मकालीन समय को ध्यान में रखते हुए – Buzinas

उत्तर

1

मैंने यह जोड़ा:

// Add timeZone 
Date.prototype.addTimeZone = function() { 
    if(this.getTimezoneOffset() > 0){ 
     this.setMinutes(this.getTimezoneOffset()); 
    } 

    return this; 
}; 

और ये मेरे नियंत्रक/मॉडल पर:

new Date(myDate).addTimeZone(); 

को फिर से शुरू करने के लिए:

विस्तार की तारीख-prototype.js

// Add timeZone 
Date.prototype.addTimeZone = function() { 
    if(this.getTimezoneOffset() > 0){ 
     this.setMinutes(this.getTimezoneOffset()); 
    } 

    return this; 
}; 

// Remove TimeZone 
Date.prototype.toJSON = function(){ 
    return moment(this).format('YYYY-MM-DD') + 'T00:00:00.000Z'; 
}; 

दृश्य। एचटीएमएल

<p ng-bind="(myDate | date:'dd/MM/yyyy')"></p> 

controller.js

new Date(myDate).addTimeZone(); 

मैं moment.js

0

आप getTimezoneOffset उपयोग कर सकते हैं पाने के लिए ग्राहक की ऑफसेट, तो सरल गणित

var dateToTranslate = new Date("2015-10-16T00:00:00.000Z"); 
var timezoneOffset = dateToTranslate.getTimezoneOffset() * 60000; 
var newDate = new Date(+dateToTranslate+timezoneOffset); 
// Fri Oct 16 2015 00:00:00 GMT+0200 (CEST) in my browser 
+1

, यह काम नहीं करेगा। जर्मनी में, आपके पास ग्रीष्मकालीन समय में सर्दियों में यूटीसी + 1 और यूटीसी + 2 है। तो आपको भी उस अंतर को बनाना होगा। – molerat

+1

'getTimezoneOffset' अलग-अलग मान वापस कर सकता है यदि डीएसटी – Hacketo

+0

बदलता है @ molerat मैंने कोड अपडेट किया है, मुझे नहीं पता कि मुझे यह कैसे याद आया, मुझे लगता है कि यह ठीक होना चाहिए। – Hacketo

संबंधित मुद्दे