时区javascript的简单介绍-成都快上网建站

时区javascript的简单介绍

javascript中如何设置指定时区的Date对象(不想与本地时区有关联)

字符串2013-10-05T02:00:00.000+09:30可以使用split方法分割

专注于为中小企业提供成都网站建设、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业细河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

var fromDate= "2013-10-05T02:00:00.000+09:30".split('T').shift().split('-'); //得到["2013", "10", "05"]

如此就可以设置进Date对象

-----------------

如果不想与本地时区有关联的话就统一用UTC的方法好了

具体时区再自己计算

比如,+9:30区

var d = new Date();

//9小时就是9*60分钟,加上30分钟,再转换为毫秒

d.setTime(d.getTime()+(9*60+30)*60*1000);

d.toUTCString();

-----------------

Date对象的UTC有关的方法:

getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)

getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)

getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)

getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份

getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)

getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)

getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)

getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)

setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)

setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)

setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)

setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)

setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)

setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)

setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)

toUTCString() 根据世界时,把 Date 对象转换为字符串

Javascript 时区的问题

把下面的保存为html直接可以运行看到的。。

举一反三就是你想要的了。。。。。

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

html

head

script language="JavaScript"

// function to calculate local time

// in a different city

// given the citys UTC offset

function calcTime(city, offset) {

// create Date object for current location

d = new Date();

// convert to msec

// add local time zone offset

// get UTC time in msec

utc = d.getTime() + (d.getTimezoneOffset() * 60000);

// create new Date object for different city

// using supplied offset

nd = new Date(utc + (3600000*offset));

// return time as a string

return "The local time in " + city + " is " + nd.toLocaleString();

}

// get Bombay time

alert(calcTime('Bombay', +5.5));

// get Singapore time

alert(calcTime('Singapore', +8));

// get London time

alert(calcTime('London', +1));

/script

/head

body

/body

/html

js Date时区矫正

前言:有时候后端返回给前端的时间格式是这种的

该时间格式为UTC格式,"+00:00","+"代表是东边的时区,当"+"变成"-"时,代表是西边的时区,后面紧接着的两个数字代表的是具体那个时区,如"+08"代表东八区,":"后的两个数代表和伦敦协调时偏差多少分钟。

    将该时间格式改成"YYYY-mm-dd HH:MM:SS"等格式,则需要处理后端返回时区与本时区时间的偏差。js的Date对象提供getTimezoneOffset函数,用于获取本时区与伦敦协调时的时间差,返回数值的单位是分钟。

    Date对象的toLocaleDateString函数,在PC端和移动端有差别,在安卓移动端会比PC端的返回值多"上午"、"下午"等。

没有直接使用new Date(value)来获取日期,是因为在IOS系统下,年月日的分隔符只有是"/"的字符串(如"2019/09/09")用new Date(string)得到正确的日期。

    还有另一种格式GMT,相较于UTC格式,GMT没有那么精确,不能具体到毫秒。

    以下内容为追加GMT格式转换

参考:

JS操作时间 - UNIX时间戳简单介绍  -  阿胜4K

世界协调时间(UTC)

MDN Date

Javascript获取时区?

getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。

所以 咱们的时间早!~太阳从东方升起!~

我怎么能在JavaScript得到时区的名字吗

可以试试这个:

static getTimezoneName() {

let tmSummer = new Date(Date.UTC(2005, 6, 30, 0, 0, 0, 0));

let so = -1 * tmSummer.getTimezoneOffset();

let tmWinter = new Date(Date.UTC(2005, 12, 30, 0, 0, 0, 0));

let wo = -1 * tmWinter.getTimezoneOffset(); if (-660 == so -660 == wo) return 'Pacific/Midway'; if (-600 == so -600 == wo) return 'Pacific/Tahiti'; if (-570 == so -570 == wo) return 'Pacific/Marquesas'; if (-540 == so -600 == wo) return 'America/Adak'; if (-540 == so -540 == wo) return 'Pacific/Gambier'; if (-480 == so -540 == wo) return 'US/Alaska'; if (-480 == so -480 == wo) return 'Pacific/Pitcairn'; if (-420 == so -480 == wo) return 'US/Pacific'; if (-420 == so -420 == wo) return 'US/Arizona'; if (-360 == so -420 == wo) return 'US/Mountain'; if (-360 == so -360 == wo) return 'America/Guatemala'; if (-360 == so -300 == wo) return 'Pacific/Easter'; if (-300 == so -360 == wo) return 'US/Central'; if (-300 == so -300 == wo) return 'America/Bogota'; if (-240 == so -300 == wo) return 'US/Eastern'; if (-240 == so -240 == wo) return 'America/Caracas'; if (-240 == so -180 == wo) return 'America/Santiago'; if (-180 == so -240 == wo) return 'Canada/Atlantic'; if (-180 == so -180 == wo) return 'America/Montevideo'; if (-180 == so -120 == wo) return 'America/Sao_Paulo'; if (-150 == so -210 == wo) return 'America/St_Johns'; if (-120 == so -180 == wo) return 'America/Godthab'; if (-120 == so -120 == wo) return 'America/Noronha'; if (-60 == so -60 == wo) return 'Atlantic/Cape_Verde'; if (0 == so -60 == wo) return 'Atlantic/Azores'; if (0 == so 0 == wo) return 'Africa/Casablanca'; if (60 == so 0 == wo) return 'Europe/London'; if (60 == so 60 == wo) return 'Africa/Algiers'; if (60 == so 120 == wo) return 'Africa/Windhoek'; if (120 == so 60 == wo) return 'Europe/Amsterdam'; if (120 == so 120 == wo) return 'Africa/Harare'; if (180 == so 120 == wo) return 'Europe/Athens'; if (180 == so 180 == wo) return 'Africa/Nairobi'; if (240 == so 180 == wo) return 'Europe/Moscow'; if (240 == so 240 == wo) return 'Asia/Dubai'; if (270 == so 210 == wo) return 'Asia/Tehran'; if (270 == so 270 == wo) return 'Asia/Kabul'; if (300 == so 240 == wo) return 'Asia/Baku'; if (300 == so 300 == wo) return 'Asia/Karachi'; if (330 == so 330 == wo) return 'Asia/Calcutta'; if (345 == so 345 == wo) return 'Asia/Katmandu'; if (360 == so 300 == wo) return 'Asia/Yekaterinburg'; if (360 == so 360 == wo) return 'Asia/Colombo'; if (390 == so 390 == wo) return 'Asia/Rangoon'; if (420 == so 360 == wo) return 'Asia/Almaty'; if (420 == so 420 == wo) return 'Asia/Bangkok'; if (480 == so 420 == wo) return 'Asia/Krasnoyarsk'; if (480 == so 480 == wo) return 'Australia/Perth'; if (540 == so 480 == wo) return 'Asia/Irkutsk'; if (540 == so 540 == wo) return 'Asia/Tokyo'; if (570 == so 570 == wo) return 'Australia/Darwin'; if (570 == so 630 == wo) return 'Australia/Adelaide'; if (600 == so 540 == wo) return 'Asia/Yakutsk'; if (600 == so 600 == wo) return 'Australia/Brisbane'; if (600 == so 660 == wo) return 'Australia/Sydney'; if (630 == so 660 == wo) return 'Australia/Lord_Howe'; if (660 == so 600 == wo) return 'Asia/Vladivostok'; if (660 == so 660 == wo) return 'Pacific/Guadalcanal'; if (690 == so 690 == wo) return 'Pacific/Norfolk'; if (720 == so 660 == wo) return 'Asia/Magadan'; if (720 == so 720 == wo) return 'Pacific/Fiji'; if (720 == so 780 == wo) return 'Pacific/Auckland'; if (765 == so 825 == wo) return 'Pacific/Chatham'; if (780 == so 780 == wo) return 'Pacific/Enderbury'

if (840 == so 840 == wo) return 'Pacific/Kiritimati'; return 'US/Pacific';

}

如何使用js显示指定时区的时间

d=new Date(); //创建一个Date对象

localTime = d.getTime();

localOffset=d.getTimezoneOffset()*60000; //获得当地时间偏移的毫秒数

utc = localTime + localOffset; //utc即GMT时间

offset =10; //以夏威夷时间为例,东10区

gtm= utc + (3600000*offset);

nd = new Date(gtm);

document.writeln("gtm time is " + nd.toLocaleString() ");


当前标题:时区javascript的简单介绍
本文来源:http://kswjz.com/article/dssieis.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流