日期:2014-05-18  浏览次数:20835 次

关于js问题
现在我遇到一个js方面的问题,请教一下大家,就是现在我有一个输入框,要输入时间,而时间是用时间控件做的,我选择的话,就会显示比如2009-3-5这样的日期,如果我想用js判断,如果你当前选择的日期为系统时间后的时候,就提示alert,这个如何做呢,望高手指教,就是当我选择的时间是当前日期以后的时候,就提示alert,谢谢大家了。

------解决方案--------------------

 2 中方法:

 1: 就是在你获得日期控件的同时将系统时间本地化一下,
//将日期转换为本地格式。
var strDate=new Date().toLocaleString();

//将字符串形式的日期进行格式化。
var value=strDate.replace(/[年]|[月]/g,"-").replace(/[日]/g,"");
alert("格式化之后的日期为:"+value); // 这里弹出的时间是 2009-3-5 08:58:23 秒,后面的时分秒要么你可以根据字符串截取把它截取掉。要么 就是在 new Date 的时候不要时分秒。

然后就判断两个字符串是不是相等,相等就是当前时间就 alert

 2: 直接在日期控件底层代码里面找到选择 today 时间的事件,在里面操作。或者重写那个方法。


------解决方案--------------------
1楼的方法不错,我再写个触发事件

onChange

<input type="text" name="dateObject" onChange="checkDate(this.value)">

在内容被改变时去判断日期。
------解决方案--------------------
var d1 = "2006-05-01 14:00"; 
var date1 = new Date(d1.replace(/-/g,"\/"));
var now = new Date(); 
alert(date1<now);
------解决方案--------------------
探讨
var d1 = "2006-05-01 14:00";
var date1 = new Date(d1.replace(/-/g,"\/"));
var now = new Date();
alert(date1 <now);

------解决方案--------------------
在日期控件里面吧当前日期以后的日期连接设为不可链接状态
------解决方案--------------------
好久没写JS了。。。

new Data()跟new DataTime()
------解决方案--------------------
最后答案:得到不要时分秒的 date 时间,再根据我上面说的来判断两个时间就 ok 了。

<script>
var date = new Date();
  
//将日期转换为本地格式。
var strDate=new Date().toLocaleString();
  
//这里 strDate.length-9 是一个固定的长度原来时间为: "2009年3月5日 11:09:23" 秒,这里 9 个的长度就是 " 11:09:23" 它的长度了,不管时分秒 是大于10还是小于10 它的长度都为 9 ,故 (0,strDate.length-9) 的长度就是从最开始到 “日”字的字符串。所以通过字符串截取就可以得到不要时分秒的时间了。

strDate = strDate.substring(0,strDate.length-9);

//将字符串形式的日期进行格式化。
var value=strDate.replace(/[年]|[月]/g,"-").replace(/[日]/g,"");
alert("格式化之后的日期为:"+value);
  
</script>
------解决方案--------------------
楼上的JS学得不错嘛
------解决方案--------------------

JScript code

  var date  = new Date();
  var year  = date.getYear()<10?"0"+date.getYear():date.getYear();
  var month = (date.getMonth()+1)<10?"0"+(date.getMonth()+1):date.getMonth()+1;
  var day   = date.getDate()<10?"0"+date.getDate():date.getDate();  

  var nowDate = year+"-"+month+"-"+day;  // 这里输出的应该是你需要的 2009-03-05

  alert(nowDate)

  // 剩下的工作就是来判断 nowDate 和从日期对话框中得到的当前日期的值是不是一样的。

------解决方案--------------------
探讨
再打扰一下,如果要求显示的时间是yyyy-mm-dd形式怎么写?比如2009-3-5,应该显示为2009-03-05