js 时间转成时间戳对比;My97DatePicker日历控件时间格式;Date.parse Firefox火狐浏览器返回Nan的解决办法

时间:2022-01-07 16:47:05

有个情况,我在显示时间的时候是需要显示为  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 时间转成时间戳对比;My97DatePicker日历控件时间格式;Date.parse Firefox火狐浏览器返回Nan的解决办法

这样当用户点击的时候,我的隐藏域也一样可以跟着变化,而且是我能正常使用的系统时间

下面是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