如何设置javascript全局时区

时间:2015-04-21 05:07:59

标签: javascript timezone

我当前的时区是IST,我希望它是动态的,例如,如果我在数据库中将时区设置为PST,那么我需要将其设置为javascript,每当我尝试创建日期对象时,它应该返回PST中的时间。 / p>

如果没有浪费太多时间,我想知道是否有可能,是否有可能?

我在time_zone_offset中有这个功能,它的返回时间比UTC早5小时,我的系统时区是+5.5而不是UTC date只需2分钟。以前,但它在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;

1 个答案:

答案 0 :(得分:1)

如果我要处理客户端网站时区,我会使用Moment.jsMoment Timezone。简单的JS日期很痛苦。

这是一个很大的lib,所以如果它只是一次性的事情你想要它最好不要使用它只是从服务器发送时区并用用户的站点时区抵消它