怎样在js日期比较?

sunlijun 2007-03-29 09:46:25
怎样在js中比较日期,例如结束日期必须大于等于开始日期,日期格式为2006-03-21。
...全文
1938 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelloNet 2008-05-15
  • 打赏
  • 举报
回复
我也是一样的问题
z109876543210 2007-04-01
  • 打赏
  • 举报
回复
function datecompare(date1, date2){
var d1 = new Date(date1.replace(/\-/g, "\/"));
var d2 = new Date(date2.replace(/\-/g, "\/"));

var flag = true;

if(d1 == "NaN" || d2 == "NaN")flag = false;//不是日期

if(flag &&
d1.getFullYear() > d2.getFullYear()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() > d2.getMonth()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() == d2.getMonth() &&
d1.getDate() > d2.getDate()){
flag = false;
}
return flag;
}
sunlijun 2007-04-01
  • 打赏
  • 举报
回复
执行出错!
z109876543210 2007-04-01
  • 打赏
  • 举报
回复
if(
!datecompare (
ThrowBlank(document.job.starttime.value), ThrowBlank(document.job.endtime.value)
)
){

alert("wrong");

}
z109876543210 2007-04-01
  • 打赏
  • 举报
回复
function datecompare(date1, date2){
var d1 = new Date(date1.replace(/\-/g, "\/"));
var d2 = new Date(date2.replace(/\-/g, "\/"));

var flag = true;

if(! (dl && d2))flag = false;//不是日期

if(flag &&
d1.getFullYear() > d2.getFullYear()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() > d2.getMonth()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() == d2.getMonth() &&
d1.getDate() > d2.getDate()){
flag = false;
}
return flag;
}
z109876543210 2007-04-01
  • 打赏
  • 举报
回复
//"2007-4-19".replace(/\-/g, "\/") 搞错了
sunlijun 2007-04-01
  • 打赏
  • 举报
回复
不明白document.job.endtime.value怎么替换上面的!
z109876543210 2007-04-01
  • 打赏
  • 举报
回复
改成这样吧,安全点。不过我以前都直接比较了,没试过出错。不知你什么原因
var d1 = new Date("2007/4/2")// "2007-4-2".split(/\-/g, "\/")
var d2 = new Date("2007/4/19") //"2007-4-19".split(/\-/g, "\/")

var flag = true;

if(! (dl && d2))flag = false;//不是日期

if(flag &&
d1.getFullYear() > d2.getFullYear()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() > d2.getMonth()){
flag = false;
}
if(flag &&
d1.getFullYear() == d2.getFullYear() &&
d1.getMonth() == d2.getMonth() &&
d1.getDate() > d2.getDate()){
flag = false;
}
if(!flag){
alert("wrong");
}
sunlijun 2007-04-01
  • 打赏
  • 举报
回复
我是这么写的:
if (ThrowBlank(document.job.endtime.value)<ThrowBlank(document.job.starttime.value))
{
alert("结束日期不能小于开始日期");
document.job.endtime.focus();
return false;
}

可是执行不对:
开始日期为2007-4-2,结束日期为2007-4-19,提示结束日期不能小于开始日期。
开始日期为2007-4-2,结束日期为2007-4-28,就不提示!

为什么呀!

各位帮帮忙!
z109876543210 2007-03-29
  • 打赏
  • 举报
回复
直接比较 < > !=
sunlijun 2007-03-29
  • 打赏
  • 举报
回复
怎么没人回答?

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧