您的位置:首页 > Web前端 > JavaScript

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

2013-08-10 13:43 771 查看
有个情况,我在显示时间的时候是需要显示为  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: