js Date时区矫正

js Date时区矫正,第1张

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

        该时间格式为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

这边写了段代码,请保存为html文件测试

<!DOCTYPE html>

<html>

<body>

<h2>格式化日期时间</h2>

<p id="demo"></p>

<script>

var d = new Date();

var myhour=dgetHours();

if(myhour<12)

{myhour=" 上午"+myhour;}

else

{myhour=" 下午"+(myhour-12);}

documentgetElementById("demo")innerHTML = dgetFullYear()+"年"+(dgetMonth()+1)+"月"+dgetDate()+"日"+myhour +"时"+ dgetMinutes()+"分" ;

</script>

</body>

</html>

正如楼上所说的,js只能 *** 作客户端的东西。在客户端时刻显示并更新服务器的时间应该是不可能的,因为会由于网络延迟的因素使得时间不精确。

打个比方,可以使用ajax每秒钟获取服务器的时间,然后再显示出来,但是可能这个用户的网络延迟比较厉害,他请求的这个时间过了两三秒才返回给客户端,那这样更新时间就不精确了。

也可以这样,第一次从服务器那里获取时间,然后再客户端用js,每秒累加数,就是以获取服务器的那个时间为起掉,用客户端代码每秒累加这个时间

获取系统当前小时展示不同的时间状态

data(){

return{

sayHello:undefined

}}

constnow=newDate()

consthour=nowgetHours()

if(hour<6) {

thissayHello='凌晨好'

}elseif(hour<9) {

thissayHello='早上好'

}elseif(hour<12) {

thissayHello='上午好'

}elseif(hour<14) {

thissayHello='中午好'

}elseif(hour<17) {

thissayHello='下午好'

}elseif(hour<19) {

thissayHello='傍晚好'

}elseif(hour<22) {

thissayHello='晚上好'

}else{

thissayHello='夜里好'

}

},

以上就是关于js Date时区矫正全部的内容,包括:js Date时区矫正、咨询一个web前端时间显示问题,时间现在显示为月日年和英文pm,如何强制显示为年月日下午、js如何取得服务器时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9565255.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存