JS 如何比较两个输入框里输入的日期大小,并且第一个输入框里的时间还要和当前的时间比较

JavaScript07

JS 如何比较两个输入框里输入的日期大小,并且第一个输入框里的时间还要和当前的时间比较,第1张

<input type="text" id="time1" />

<input type="text" id="time2" /> var now = new Date().getTime()//当前时间戳

var time_1 = new Date(document.getElementById('time1').value).getTime()//1的时间戳

var time_2 = new Date(document.getElementById('time2').value).getTime()//2的时间戳

//直接进行时间戳的比较即可,js的时间戳是从1970年1月1日0时0分0秒到对应时间所经过的毫秒数

//上面3个变量都是number类型,可直接进行比较,加减运算也可

<div id="time">

<script language="javascript">

setInterval("time.innerHTML=new Date().toLocaleString()",1000)

</script>

</div>

这样就行了,你错的原因在于,JavaScript的.toLocalString()方法就可以获取星期的信息,而你在后面加上的那段,完全只是再输出了一个星期几而已,不过你的想法还是很好的,呵呵:)

祝你好运!

setMonth(month)的参数有问题。month介于 0(一月) ~ 11(十二月) 之间。所以应该改为:

sdate.setMonth(parseInt(selectdate.substring(5,7))-1)

var strMonth=date.getMonth()+1

dateObject.setMonth(month,day)

month 必需。一个表示月份的数值,该值介于 0(一月) ~ 11(十二月) 之间。

day 可选。一个表示月的某一天的数值,该值介于 1 ~ 31 之间(以本地时间计)。在 EMCAScript 标准化之前,不支持该参数。

另外,你这里还有一个bug。把截取出来的月份和日期转化为int型的时候,月份和日期可能出现以0开头的值,例如:07,09...,而以0开头的数会被javascript认为是八进制的数,如果值小于8不会有问题,但是如果值大于或等于8(08和09)的时候得到的结果就会不正常(等于0)。