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=" 250px;" />

            <input id="fixedtime" type="text" value="<%=DateTime.Now.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss") %>" style="display: none"/>

于是我就弄2个input,一个显示我需要给用户看到的时间,一个用于隐藏给我自己需要比较用

image

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

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

原文地址:https://www.cnblogs.com/joeylee/p/3250000.html