js date 获取毫秒数,注意时区的区别!

系统在前端需要做一个 倒计时!

然后 将 后台传递到 前端的 时间字符串,创建 date 对象,然后 获取 毫秒数 来进行 

计算 倒计时! 

可是没有注意到   date 的getTime() 的时区问题, 这样电脑设置不同时区的地方,倒计时显示的倒计时时间就不一样了。

之前都没有注意到这个问题,还好测试发现了这个BUG。

虽然用户一般都是在中国时区的, 但是也是一个 隐藏BUG不是?

/*
* 实际服务器当时时间=页面一开始打开时的服务器时间+(当前客户端时间-一开始时打开页面是的客户端时间)
* 剩余时间=结束时间-实际服务器当时时间
var order_id=${order_id};//订单ID
var service_time=${service_time};//系统时间
var end_time=${end_time};//结束时间
*/
var clientStartTime=new Date();
function showtime(){
	
		var endyear=end_time.substring(0,4);
		var endmonth=end_time.substring(5,7);
		var endday=end_time.substring(8,10);
		var endhms=end_time.substring(11,19);
		//实际服务器当时时间=页面一开始打开时的服务器时间+(当前客户端时间-一开始时打开页面是的客户端时间)
		var sTime=service_time+(new Date().getTime()-clientStartTime.getTime());
		var enddate=endyear+"/"+endmonth+"/"+endday+" "+endhms;
		var eTime=new Date(enddate);
		var sumSecond=parseInt((eTime.getTime()-sTime)/1000);/*sumSecond=sumSecond+(24*60*60);*/
		
        //计算倒计时
		var showSecond=sumSecond%60;
		var sumMinute=(sumSecond-showSecond)/60;
		var showMinute=sumMinute%60;
		var sumHour=(sumMinute-showMinute)/60;
		var showHour=sumHour%24;
		var showData=(sumHour-showHour)/24;
		
		if(sumSecond>-1){
			$("#d").html(showData);
			$("#h").html(showHour);
			$("#m").html(showMinute);
			$("#s").html(showSecond);
			timerID=setTimeout("showtime()",1000);
			
			
		}else{
			$("#d").html(0);
			$("#h").html(0);
			$("#m").html(0);
			$("#s").html(0);
		}
	
	}




可以看到 上面的 eTime.getTime() 这个没有设置时区,所以就出现时区的BUG。
所以要么在这里设置时区,要么通过  后端将 这个时间的 毫米数都给前端








 

可以参考网友的 :date和时区区别

所以在前端一些比较重要的功能或者操作的时候,一定要注意时区的问题

 

转载于:https://my.oschina.net/u/2419285/blog/2249180

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值