JS 如何比较时间大小?

JavaScript029

JS 如何比较时间大小?,第1张

需要准备的材料分别是:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html的<script>标签中,输入js代码:

var date1 = '2001-2-2'

var date2 = '2000-2-3'

var date1 = date1.replace(/-/g,'/')

var date2 = date2.replace(/-/g,'/')

var timestamp1 = new Date(date1).getTime()

var timestamp2 = new Date(date2).getTime()

var r = timestamp1 >timestamp2

if (r)

document.write(date1 + ' >' + date2)

else

document.write(date1 + ' <= ' + date2)

3、浏览器运行index.html页面,此时会打印出2个日期通过转换成时间戳后对比大小的结果。

看得出来你不太懂 JS,先把代码给你,做了很多注释,先仔细看看,然后后面讲解为什么:

// 检查表单的函数

function checkForm() {

/** @type {string} 数据容器 */

var merArr=""

/** @type {number} 局部循环指针 */

var p=0

/** @type {Array.<Element>} 获取待提交的表单元素 */

var items = document.getElementsByName("add_mer")

// 遮罩

Ext.getBody().mask("数据保存中,请稍等...") //这里没有起作用

// 开始检查

doCheck()

function doCheck(){

/**

 * 循环构造字符串

 * 为了避免长时间阻塞,每一段仅允许循环 100 次

 * 如果一次不能完成,则分组完成

 */

for(var i=0 i<100 && p<items.length i++, p++) {

if (items[x].checked) {

merArr =merArr+Trim(items[x].value)+","

}

}

// 如果循环结束

if (p === items.length) complete()

// 如果循环没有完成,则用 setTimeout 交出控制权,延迟循环

else setTimeout(doCheck, 1)

}

// 检查结束,真正的处理表单

function complete(){

document.getElementById("merArray").value = merArr

if(merArr==""){

alert("请勾选!")

Ext.getBody().unmask()

return false

}

document.forms['listForm'].action = 'addGroupMer.action'

document.forms['listForm'].submit()

}

return false

}

下面是讲解:

1、 JS 是阻塞式的。在一个 JS 函数正在执行的时候,对 DOM 的渲染其实对于用户来说是不可见的。也就是说,你在一个 JS 循环中不论对 DOM 做了什么,用户都是看不到中间过程,只能看到一个最终的结果。

2、 所以,上面代码的核心是,把耗时特别长的操作部分,使用 setTimeout 延迟。 setTimeout 可以把控制权还给浏览器,留出足够的页面渲染时间。

3、 setTimeout 的过程中,要注意变量的处理。对于闭包的应用是一个需要注意的地方。

以上,请采纳,请给分。

第一种:转换为date对象进行比较操作

<script>

var st="2009-10-20 14:38:40"

var et="2009-10-20 15:38:40"

var stdt=new Date(st.replace("-","/"))

var etdt=new Date(et.replace("-","/"))

if(stdt>etdt) alert("开始时间必须小于结束时间")

</script>

第二种:直接比较大小即可

<script>

var st="2009-10-20 14:38:40"

var et="2009-10-20 15:38:40"

if(st>et) alert("开始时间必须小于结束时间")

</script>