JS 如何比较两个输入框里输入的日期大小,并且第一个输入框里的时间还要和当前的时间比较
日期格式是07-28-201306:28这样的不好意思哈日期格式是07/28/201307:06这样的。。再加5分以表歉意。。...
日期格式是07-28-2013 06:28这样的
不好意思哈 日期格式是07/28/2013 07:06这样的。。再加5分以表歉意。。 展开
不好意思哈 日期格式是07/28/2013 07:06这样的。。再加5分以表歉意。。 展开
2个回答
展开全部
<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类型,可直接进行比较,加减运算也可
更多追问追答
追问
您好 您试下您写的好用么 为啥我测试 根本不好用呢
追答
以上提供的是方法,具体实现要根据你自己的实际情况写
如果你只是把上面的2段代码直接复制使用肯定不行
因为time1和time2起始的value是空的
只给出如何获取当前时间、如何将一个字符串格式的时间转为时间戳
剩下比较并输出结果,需要你自己定义,如果你真的是一点都不会的话,把你要实现的功能详尽的写在追问中,包括如何比较,比较后输出什么样的结果(精确到分钟?秒钟?分钟+秒钟等)这些都写详细才能回答详细
展开全部
帖一个字符串按格式转时间对象的函数:
/**
* 根据时间格式化字符串和时间文本值转换会时间对象
* @param {} value
* 时间文本值
* @param {} format
* 格式化字符串:以Y表示fullYear、y表示year,M表示月份,D或d表示日期,H或h表示小时,m表示分钟,S表示秒钟,s表示毫秒
* @return {}
* 返回一个时间
* 未指定年、月、日则取当前时间的年、月、日。
* 未指定时、分、秒、毫秒,则都取0.
*/
var parse = function(value, format) {
var vs = value.split(/[^ymdhs\d]/i), fs = format.split(/[^ymdhs\d]/i);
if(vs.length != fs.length) throw {message:"格式和值不一致"};
var d = new Date();
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
d.setMilliseconds(0);
for(var i = 0, il = vs.length; i < il; i++){
switch(fs[i]){
case 'Y':
d.setFullYear(parseInt(vs[i]));
break;
case 'y':
d.setYear(parseInt(vs[i]));
break;
case 'M':
d.setMonth(parseInt(vs[i]) - 1);
break;
case 'd':
case 'D':
d.setDate(parseInt(vs[i]));
break;
case 'h':
case 'H':
d.setHours(parseInt(vs[i]));
break;
case 'm':
d.setMinutes(parseInt(vs[i]));
break;
case 'S':
d.setSeconds(parseInt(vs[i]));
break;
case 's':
d.setMilliseconds(parseInt(vs[i]));
break;
}
}
return d
};
alert(parse('2010-01-02', 'Y-m-d').format('Y-m-d H:i:s'))比较两个时间:直接对两个时间对象用减法。
var d1 = parse('2010-01-02', 'Y-m-d'), d2 = parse('07-28-2013 06:28', 'M-d-Y H:m'), now = new Date();
var t = d1 - d2;
if(t > 0) alert('d1 大于 d2');
else if(t == 0) alert('d1 等于 d2');
else alert('d1 小于 d2');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询