前端 根据某个时间获得它的时间戳,并实现某个时间段内倒现在时间的倒计时功能

首先啰嗦一段,我们想得到某个时间的时间戳,一般想到的是用 Date.parse(new Date("2017-10-23 16:35:22"))这样写对不。这样写的确是没毛病,符合逻辑,而且在安卓运行是杠杠的,但在ios呢,不好意思啦,我并不认识你这个是什么。从后台打印可以看见Date.parse(new Date("2017-10-23 16:35:22"))返回的是NaN。查了资料才发现原来是ios系统并不支持这样写,需要将时间用split(/[- : \/]/)分割,割出来之后再进行new Date();

下面例子是根据某个下单时间到当前的时间算出这个订单还剩下多少时间可以进行支付(下单时间开始算,不能超过30分钟,需要将代码运行测试的可以将shanOrderTime的时间和现在的时间控制在30分钟之内即可)

areaTime : function ( timeValue ) {
var that = this ;
var shanOrderTime = "2017-10-23 17:35:39";
var arr = shanOrderTime . split ( /[- : \/]/ );
var date = new Date ( arr [ 0 ], arr [ 1 ] - 1 , arr [ 2 ], arr [ 3 ], arr [ 4 ], arr [ 5 ]); // arr[1]-1是月份,一定要记得减1
var order_time = Date . parse ( new Date ( date ));
// console.log("获取订单时间:" + order_time);
var nowTime = Date . parse ( new Date ());
// console.log("现在的时间:" + nowTime);

var differ_time = nowTime - order_time ;
var leftTime = 1800000 - differ_time ;
var d = new Date ( leftTime );
// console.log("时间差:" + differ_time);
if ( leftTime < 0 ) {
console . log ( "该订单已超时" );
} else {
var interval = setInterval ( function () {
var m = d . getMinutes ();
var s = d . getSeconds ();
that . setData ({ "minute1" : parseInt ( m / 10 ) });
that . setData ({ "minute2" : parseInt ( m % 10 ) });
that . setData ({ "second1" : parseInt ( s / 10 ) });
that . setData ({ "second2" : parseInt ( s % 10 ) })
if ( m == 0 && s == 0 ) {
clearInterval ( interval );
return ;
}
d . setSeconds ( s - 1 );
}, 1000 );
}
},
声明一下,这个运行环境是在微信小程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值