做了个小demo,放上来记一下,没什么技术含量。
效果图:
1
2-未选择时间
3-选择时间
4-确定
注意问题:
转换为时间戳时需要注意时间字符串的格式,因为Android和ios显示是不一样的,例如安卓一般为“2018-3-12 16:42”而ios有这样的格式“2018-3-12T16:43”,所以在转换的时候要做兼容。不过本案例中只截取了日期,并不需要后面的时间,所以这里不需要做兼容。
js判断客户端是ios还是Android
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
ios处理方法:
var endTime_iso=endTime_str.split(/[- :]/);
endTime=new Date(
endTime_iso[0],
endTime_iso[1]-1,
endTime_iso[2],
endTime_iso[3],
endTime_iso[4],
endTime_iso[5]
).getTime()/1000
Android就比较简单了
new Date(endTime_str).getTime()/1000;
demo代码,因为不需要后面的时间,所以把截取时间的都注释掉了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>demo</title>
<link rel="stylesheet" href="./css/mobiscroll.custom-2.5.0.min.css">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
</head>
<body>
<input type="button" value="计算" data-role="datebox" id="txtBirthday" name="txtBirthday" onChange="calculate()"/>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<script src="./js/mobiscroll.custom-2.5.0.min.js"></script>
<script>
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
</script>
<script>
$(function(){
//mobiscroll的调用方法
$('input:jqmData(role="datebox")').mobiscroll().date();
})
//因为需求点击mobiscroll的确定按钮就直接进行计算,所以只能通过onChenge监听来进行
function calculate(){
// console.log("2")
var s_date = $("input[name='txtBirthday']").val();
//ios处理方法
if(isiOS){
console.log("2")
s_date=s_date.split(/[- :]/);
s_date=new Date(
s_date[0],
s_date[1]-1,
s_date[2]
// endTime_iso[3],
// endTime_iso[4],
// endTime_iso[5]
).getTime()
}else{
//Android处理方法
var f = s_date.split(' ', 2);
var d = (f[0] ? f[0] : '').split('-', 3);
//var t = (f[1] ? f[1] : '').split(':', 3);
s_date = new Date(
parseInt(d[0], 10) || null,
(parseInt(d[1], 10) || 1) - 1,
parseInt(d[2], 10) || null
// parseInt(t[0], 10) || null,
// parseInt(t[1], 10) || null,
// parseInt(t[2], 10) || null
).getTime();
}
console.log("s_date----",s_date)
//获取当前时间戳
var e_date=new Date().getTime();
console.log("e_date----",e_date)
//时间戳之差
var newDate = e_date - s_date
console.log("newDate----",newDate)
//时间戳转换为天数,注意后面是*1000的,因为在转为时间戳的时候没有/1000,所以在这里要加上
days = Math.floor(newDate/(24*3600*1000))
console.log(" 相差 "+ days +"天 ")
}
</script>
</body>
</html>
网友评论