你好,我使用getTimezoneOffset
它返回例如-60
setTimezoneOffset整個腳本全局
我該如何設置javascript的全球時區偏移量?我試過setTimezoneOffset('-120');
,但它不工作。我想在劇本開始時在全局設置它,所以稍後我將能夠簡單地調用var d = new Date(); var n = d.getTimezoneOffset();
並返回我的值。請爲這種情況準確解決方案。謝謝!
你好,我使用getTimezoneOffset
它返回例如-60
setTimezoneOffset整個腳本全局
我該如何設置javascript的全球時區偏移量?我試過setTimezoneOffset('-120');
,但它不工作。我想在劇本開始時在全局設置它,所以稍後我將能夠簡單地調用var d = new Date(); var n = d.getTimezoneOffset();
並返回我的值。請爲這種情況準確解決方案。謝謝!
Date.prototype.getTimezoneOffset = function() {return -120;};
'新日期'實例似乎沒有考慮到這一點,雖然 –
'Date.prototype.getTimezoneOffset = function(){return -520}; hours1 = new Date()。getHours(); Date.prototype.getTimezoneOffset = function(){return -120}; hours2 = new Date()。getHours(); hours1 === hours2 // true' – Maxmaxmaximus
我寫這篇填充工具FOR YOU(喜歡TOP)ONLY FOR YOU < 3 MY FRIEND 最佳解決方案1
使用:
// TO ALL dates
Date.timezoneOffset(-240) // +4 UTC
// Override offset only for THIS date
new Date().timezoneOffset(-180) // +3 UTC
代碼:
Date.prototype.timezoneOffset = new Date().getTimezoneOffset();
Date.setTimezoneOffset = function(timezoneOffset) {
return this.prototype.timezoneOffset = timezoneOffset;
};
Date.getTimezoneOffset = function(timezoneOffset) {
return this.prototype.timezoneOffset;
};
Date.prototype.setTimezoneOffset = function(timezoneOffset) {
return this.timezoneOffset = timezoneOffset;
};
Date.prototype.getTimezoneOffset = function() {
return this.timezoneOffset;
};
Date.prototype.toString = function() {
var offsetDate, offsetTime;
offsetTime = this.timezoneOffset * 60 * 1000;
offsetDate = new Date(this.getTime() - offsetTime);
return offsetDate.toUTCString();
};
['Milliseconds', 'Seconds', 'Minutes', 'Hours', 'Date', 'Month', 'FullYear', 'Year', 'Day'].forEach((function(_this) {
return function(key) {
Date.prototype["get" + key] = function() {
var offsetDate, offsetTime;
offsetTime = this.timezoneOffset * 60 * 1000;
offsetDate = new Date(this.getTime() - offsetTime);
return offsetDate["getUTC" + key]();
};
return Date.prototype["set" + key] = function(value) {
var offsetDate, offsetTime, time;
offsetTime = this.timezoneOffset * 60 * 1000;
offsetDate = new Date(this.getTime() - offsetTime);
offsetDate["setUTC" + key](value);
time = offsetDate.getTime() + offsetTime;
this.setTime(time);
return time;
};
};
})(this));
咖啡版本:
Date.prototype.timezoneOffset = new Date().getTimezoneOffset()
Date.setTimezoneOffset = (timezoneOffset)->
return @prototype.timezoneOffset = timezoneOffset
Date.getTimezoneOffset = (timezoneOffset)->
return @prototype.timezoneOffset
Date.prototype.setTimezoneOffset = (timezoneOffset)->
return @timezoneOffset = timezoneOffset
Date.prototype.getTimezoneOffset = ->
return @timezoneOffset
Date.prototype.toString = ->
offsetTime = @timezoneOffset * 60 * 1000
offsetDate = new Date(@getTime() - offsetTime)
return offsetDate.toUTCString()
[
'Milliseconds', 'Seconds', 'Minutes', 'Hours',
'Date', 'Month', 'FullYear', 'Year', 'Day'
]
.forEach (key)=>
Date.prototype["get#{key}"] = ->
offsetTime = @timezoneOffset * 60 * 1000
offsetDate = new Date(@getTime() - offsetTime)
return offsetDate["getUTC#{key}"]()
Date.prototype["set#{key}"] = (value)->
offsetTime = @timezoneOffset * 60 * 1000
offsetDate = new Date(@getTime() - offsetTime)
offsetDate["setUTC#{key}"](value)
time = offsetDate.getTime() + offsetTime
@setTime(time)
return time
使用UTC日期方法而不是本地方法,並在需要時減去偏移量。 – Oriol
基本上'Date.prototype.getTimezoneOffset = function(){return -120;};'做你需要的(並且只針對你的情況),但是有什麼意義,爲什麼不使用常規變量呢? – Teemu
JavaScript並沒有真正的內置選項來指定要使用的時區。 '日期只懂2 - UTC/GMT和「*本地*」。而後者則由用戶的系統決定。 –