先看实现的效果
JS调用代码:
<script>
window.onload = function()
{
var now = new Date();
var reg = /^\s*([1-9]\d{3})\-(\d{1,2})\-(\d{1,2})\s*$/;
var _start1 = document.getElementById("start1").innerHTML;
var _end1 = document.getElementById("end1").innerHTML;
if (
!reg.test(_start1)
||
!reg.test(_end1)
)
{
throw new Error("Date Format Is Error !");
return;
}
var start1 = new Date(_start1.replace(reg, "$1"), parseInt(_start1.replace(reg, "$2")) - 1, _start1.replace(reg, "$3"));
var end1 = new Date(_end1.replace(reg, "$1"), parseInt(_end1.replace(reg, "$2")) - 1, _end1.replace(reg, "$3"));
document.getElementById("start2").innerHTML = Math.floor((now - start1)/(1000*60*60*24));
document.getElementById("end2").innerHTML = Math.round((end1 - now)/(1000*60*60*24));
}
</script>
HTML调用代码:
(开始时间) : <span id="start1">2018-08-27</span> 已使用<span id="start2">xx</span>天<br />
(到期时间) : <span id="end1">2018-10-26</span> 距到期<span id="end2">xx</span>天
上面的代码可用,但是我发现了一个问题,如果单独想调用开始时间或到期时间,效果就失效了。后经测试得知,如果需要开始时间,就删除JS代码里关于到期时间的代码,反之亦然。
如果只需要id="end2"到期的天数,而前面设置的id="end1"具体的时间隐藏的话,只需要给他一个display:none;样式即可。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容