该时间格式为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
字符串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 对象转换为字符串
创建一个日期对象,使用new运算符和Date构造方法(构造函数)即可。
Date.parse()和Date.UTC(),返回字符串相对应的毫秒数。
如果Date.parse()没有写入内容或者不是标准的日期格式,那么就会返回NaN。
如果想输出指定的日期,把Date.parse()传入Date构造方法里。
Date.UTC()方法也是返回表示日期的毫秒数,但它与Date.parse()在构建值时使用不同的信息。(年份,基于0的月份[0表示1月,1表示2月],月中的哪一天[1-31],小时数[0-23],分钟,秒以及毫秒)。
只有前两个参数是必须的。如果没有提供月数,则天数为1;如果省略其他参数,则统统为0。
Date类型还有一些专门用于将日期格式化为字符串的方法。
组件方法:是为单独获取想要的时间/日期而提供的方法。(注意:这些方法中,有带UTC的,有不带UTC的。UTC日期指的是在没有时区偏差的情况下的日期值。)
方法名 说明