如何设置 javascript 全球时区
How to set javascript global timezone
我当前的时区在 IST,我希望它是动态的,例如,如果我在我的数据库中将我的时区设置为 PST,那么我需要将它设置为 javascript,每当我尝试创建日期对象时,它应该return 太平洋标准时间。
在不浪费太多时间的情况下,我想知道是否可以,如果可以的话,有什么可能吗?
无论如何我在 time_zone_offset
中都有这个功能,它的 returning 时间比 UTC 早 5 小时,我的系统时区比 UTC +5.5 date
只有 2 分钟。之前但它 returning 10 小时前
var currentDate = new Date(new Date().getTime()); // local system date
var timezoneOffset = time_zone_offset;
//Convert current dateTime into UTC dateTime
var utcDate = new Date(currentDate.getTime() + (timezoneOffset * 60000));
//console.log(utcDate);
//Convert date string (2015-02-02 07:12:13) in date object
var t = date.split(/[- :]/);
var today = new Date();
// Apply each element to the Date function
var date = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
//date = new Date(date);
var dateDiff = Math.floor((utcDate.getTime()/1000)) - Math.floor((date.getTime()/1000));
var formatedDate = '';
var time = '';
var fullDays = Math.floor(dateDiff/(60*60*24));
var fullHours = Math.floor((dateDiff-(fullDays*60*60*24))/(60*60));
var fullMinutes = Math.floor((dateDiff-(fullDays*60*60*24)-(fullHours*60*60))/60);
var fullSeconds = Math.floor((dateDiff-(fullDays*60*60*24)-(fullHours*60*60)-(fullMinutes*60)));
var dayArray = new Array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
var monthArray = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Nov','Dec');
//console.log(dateDiff);
date = new Date(date.getTime() - (timezoneOffset * 60000));
if(fullDays > 2){
//var dt = new Date(date*1000);
time = monthArray[date.getMonth()]+' '+date.getDate()+' at '+formatAMPM(date);
} else if(fullDays == 2){
time = '2 days';
} else if(today.getDate() > t[2]){
time = 'Yesterday at '+formatAMPM(date);
} else if(fullHours > 0) {
time = fullHours + ' hours';
if(fullHours == 1) {
time = fullHours + ' hour';
}
} else if(fullMinutes > 0) {
time = fullMinutes + ' mins';
if (fullMinutes == 1) {
time = fullMinutes + ' min';
}
} else {
time = 'Just now';
}
return time;
如果我要经常处理客户端时区,我会使用 Moment.js and Moment Timezone。普通的 JS 日期很痛苦。
这是一个很大的库,所以如果它只是一次性的东西,最好不要使用它,只需从服务器发送时区并用用户的客户端时区偏移它
我当前的时区在 IST,我希望它是动态的,例如,如果我在我的数据库中将我的时区设置为 PST,那么我需要将它设置为 javascript,每当我尝试创建日期对象时,它应该return 太平洋标准时间。
在不浪费太多时间的情况下,我想知道是否可以,如果可以的话,有什么可能吗?
无论如何我在 time_zone_offset
中都有这个功能,它的 returning 时间比 UTC 早 5 小时,我的系统时区比 UTC +5.5 date
只有 2 分钟。之前但它 returning 10 小时前
var currentDate = new Date(new Date().getTime()); // local system date
var timezoneOffset = time_zone_offset;
//Convert current dateTime into UTC dateTime
var utcDate = new Date(currentDate.getTime() + (timezoneOffset * 60000));
//console.log(utcDate);
//Convert date string (2015-02-02 07:12:13) in date object
var t = date.split(/[- :]/);
var today = new Date();
// Apply each element to the Date function
var date = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
//date = new Date(date);
var dateDiff = Math.floor((utcDate.getTime()/1000)) - Math.floor((date.getTime()/1000));
var formatedDate = '';
var time = '';
var fullDays = Math.floor(dateDiff/(60*60*24));
var fullHours = Math.floor((dateDiff-(fullDays*60*60*24))/(60*60));
var fullMinutes = Math.floor((dateDiff-(fullDays*60*60*24)-(fullHours*60*60))/60);
var fullSeconds = Math.floor((dateDiff-(fullDays*60*60*24)-(fullHours*60*60)-(fullMinutes*60)));
var dayArray = new Array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');
var monthArray = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Nov','Dec');
//console.log(dateDiff);
date = new Date(date.getTime() - (timezoneOffset * 60000));
if(fullDays > 2){
//var dt = new Date(date*1000);
time = monthArray[date.getMonth()]+' '+date.getDate()+' at '+formatAMPM(date);
} else if(fullDays == 2){
time = '2 days';
} else if(today.getDate() > t[2]){
time = 'Yesterday at '+formatAMPM(date);
} else if(fullHours > 0) {
time = fullHours + ' hours';
if(fullHours == 1) {
time = fullHours + ' hour';
}
} else if(fullMinutes > 0) {
time = fullMinutes + ' mins';
if (fullMinutes == 1) {
time = fullMinutes + ' min';
}
} else {
time = 'Just now';
}
return time;
如果我要经常处理客户端时区,我会使用 Moment.js and Moment Timezone。普通的 JS 日期很痛苦。
这是一个很大的库,所以如果它只是一次性的东西,最好不要使用它,只需从服务器发送时区并用用户的客户端时区偏移它