js 时间转成时间戳对比;My97DatePicker日历控件时间格式;Date.parse Firefox火狐浏览器返回Nan的解决办法
有个情况,我在显示时间的时候是需要显示为 2013年8月15日 14时28分15秒
但是假如我用js去获取到这个时间,并且想进行时间对比的时候,这个时间2013年8月15日 14时28分15秒根本就不能比较,那么我怎么能转换成2013-8-15 14:28:15这样的标准时间呢?
my97给我们提供了一个这样的功能,vel 能帮你在另外一个input上显示 系统可识别的日期格式
<input value="<%=DateTime.Now.AddHours(1).ToString("yyyy年MM月dd日 HH时mm分ss秒") %>" id="TestDate" name="TestDate" type="text" readonly="readonly" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyy年MM月dd日 HH时mm分ss秒',vel:'fixedtime'})" style=" width:250px;" /> <input id="fixedtime" type="text" value="<%=DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss") %>" style="display: none"/>
于是我就弄2个input,一个显示我需要给用户看到的时间,一个用于隐藏给我自己需要比较用
这样当用户点击的时候,我的隐藏域也一样可以跟着变化,而且是我能正常使用的系统时间
下面是js的时间对比 用到 Date.parse 来比较
//判断时间是否小于当前时间 var fixedtime = $("#fixedtime").val(); if (Date.parse(new Date()) > Date.parse(fixedtime)) { alert("定时发送设定时间已过期,请重新选择"); return false; }
这上面的代码 在IE 在 chrome都能用的很好,但是在火狐浏览器里面Date.parse("2013-06-20 16:30:55") 会返回Nan而不是时间戳,解决方法
var fixedtime = $("#fixedtime").val(); var tempFoxTime = fixedtime.replace("-", "/").replace("-", "/"); //火狐浏览器对2013-04-05 16:20:30 这样的格式要把-替换成/ if (Date.parse(new Date()) > Date.parse(tempFoxTime)) { CxcDialog('提示框', '定时发送设定时间已过期,请重新选择', 'Warning', ''); return false; }
为什么会有2个replace呢?因为js每次replace只能替换掉一个···而我们的时间里面有2个- 符号 所以要替换2次
其他更详细的配置可以查看 http://www.toone.com.cn:8101/wooui/newDemo/WEB-INF/pages/single/datepicker.htm