js new Date('yyyy-MM-dd HH:mm:ss').getTime() 在IE、FF下为NaN的解决办法

  今天在一个项目中要做一个倒计时的效果,自己js水平很一般,在网上找了段倒计时代码用了(如下):

function CountDown(jqueryObj) {
            var day_elem = jqueryObj.find(‘.day‘);
            var hour_elem = jqueryObj.find(‘.hour‘);
            var minute_elem = jqueryObj.find(‘.minute‘);
            var second_elem = jqueryObj.find(‘.second‘);
            var time = jqueryObj.data("endtime");var end_time = new Date(time).getTime(),//月份是实际月份-1
            sys_second = (end_time - new Date().getTime()) / 1000;
            var timer = setInterval(function () {
                if (sys_second > 1) {
                    sys_second -= 1;
                    var day = Math.floor((sys_second / 3600) / 24);
                    var hour = Math.floor((sys_second / 3600) % 24);
                    var minute = Math.floor((sys_second / 60) % 60);
                    var second = Math.floor(sys_second % 60);
                    day_elem && $(day_elem).text(day);//计算天
                    $(hour_elem).text(hour < 10 ? "0" + hour : hour);//计算小时
                    $(minute_elem).text(minute < 10 ? "0" + minute : minute);//计算分钟
                    $(second_elem).text(second < 10 ? "0" + second : second);//计算秒杀
                } else {
                    var a_play = jqueryObj.find(‘.p_ljw a:first‘);
                    if (time.length > 0)
                        a_play.attr(‘href‘, ‘javascript:void(0)‘).addClass(‘a_not‘).text(‘已结束‘);
                    clearInterval(timer);
                }
            }, 1000);
        }

  因为本人一直以chrome为主浏览器使用,开发测试的时候看到的也是正常的,也没有想到浏览器兼容性的问题,待这个模块上线内测的时候发现了一个问题,var end_time = new Date(time).getTime();这行代码在firefox、ie下运行后 end_time 的值为 NaN,其中 time 的格式为"yyyy-MM-dd HH:mm:ss",google之后做了如下修改,运行正常,我称为解决方案一吧

  解决方案一

function CountDown(jqueryObj) {
            var day_elem = jqueryObj.find(‘.day‘);
            var hour_elem = jqueryObj.find(‘.hour‘);
            var minute_elem = jqueryObj.find(‘.minute‘);
            var second_elem = jqueryObj.find(‘.second‘);
            var time = jqueryObj.data("endtime");       //修改-----------
            var datetimeArray = time.split(‘ ‘);
            var dateArray = datetimeArray[0].split(‘-‘);
            var timeArray = datetimeArray[1].split(‘:‘);
            var end_time = new Date(dateArray[0],(dateArray[1]-1),dateArray[2],timeArray[0],timeArray[1],timeArray[2]).getTime(),//月份是实际月份-1        //修改-----------
            sys_second = (end_time - new Date().getTime()) / 1000;
            var timer = setInterval(function () {
                if (sys_second > 1) {
                    sys_second -= 1;
                    var day = Math.floor((sys_second / 3600) / 24);
                    var hour = Math.floor((sys_second / 3600) % 24);
                    var minute = Math.floor((sys_second / 60) % 60);
                    var second = Math.floor(sys_second % 60);
                    day_elem && $(day_elem).text(day);//计算天
                    $(hour_elem).text(hour < 10 ? "0" + hour : hour);//计算小时
                    $(minute_elem).text(minute < 10 ? "0" + minute : minute);//计算分钟
                    $(second_elem).text(second < 10 ? "0" + second : second);//计算秒杀
                } else {
                    var a_play = jqueryObj.find(‘.p_ljw a:first‘);
                    if (time.length > 0)
                        a_play.attr(‘href‘, ‘javascript:void(0)‘).addClass(‘a_not‘).text(‘已结束‘);
                    clearInterval(timer);
                }
            }, 1000);
        }

  解决方案二

  方案二就是改变日期的格式,将  time  的格式由 "yyyy-MM-dd HH:mm:ss" 改为  "yyyy/MM/dd HH:mm:ss"

js new Date('yyyy-MM-dd HH:mm:ss').getTime() 在IE、FF下为NaN的解决办法

时间: 2024-10-07 00:37:31

js new Date('yyyy-MM-dd HH:mm:ss').getTime() 在IE、FF下为NaN的解决办法的相关文章

java 日期格式转换EEE MMM dd HH:mm:ss z yyyy

SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.ENGLISH);Date date = parserSDF.parse("Wed Oct 16 00:00:00 CEST 2013");

Oracle中把一个DateTime的字符串转化成date类型。to_date(&#39;2016/12/8 18:55:43&#39;,&#39;yyyy/MM/dd hh24:mi:ss&#39;),

Oracle中把一个DateTime或者该形态字符串转化成date类型. to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'), 或者: select to_date('2010-10-20 13:23:44','yyyy-mm-dd hh24:mi:ss')  from dual; 是用" /"还是" -"取决于字符串是什么结构的. date类型转换成char类型, 例子to_char(' ','yyyymmd

js将日期格式转换为YYYY-MM-DD HH:MM:SS

<script language="javascript" type="text/javascript"> //页面加载 jQuery(document).ready(function($){ ASK_TIME=(new Date()).Format("yyyy-MM-dd hh:mm:ss"); document.all('JK_MAIN/ASK_TIME').value=ASK_TIME; //格式化日期 Date.prototy

js 毫秒转日期(yy-MM-dd hh:mm:ss)

var seconds = "133343241342";//毫秒数 var objtime = new Date();//声明一个日期内建函数 objtime.setTime(seconds); objtime.getFullYear();//得到年份 objtime.getMonth();//得到月份 objtime.getDate();//得到日期 objtime.getHours();//得到小时 objtime.getMinutes();//得到分钟 objtime.getS

js new date详解

创建一个日期对象: var objDate=new Date([arguments list]); var ini_date=new Date(2014,7,0); //是代表7月最后一天 ,也就是2014-07-31 var ini_date=new Date(2014,7,1); //是代表8月第一天 ,也就是2014-08-01参数形式有 以下5种: new Date("month dd,yyyy hh:mm:ss");   new  Date("month dd,yy

js new Date() 获取时间

js new Date() 获取时间 Date 对象用于处理日期和时间.创建 Date 对象的语法:var myDate=new Date()Date 对象会自动把当前日期和时间保存为其初始值.参数形式有以下5种: new Date("month dd,yyyy hh:mm:ss");new Date("month dd,yyyy");new Date(yyyy,mth,dd,hh,mm,ss);new Date(yyyy,mth,dd);new Date(ms);

javascript学习 - js的Date对象函数

js的Date函数功能很强大.一般用到的. 首先获取当前日期: var CurDate = new Date(); var Year = CurDate.getFullYear(); //年份(四位 例:2014) var Month = CurDate.getMonth()+1; //月 0~11 var Day = CurDate.getDate(); //获得几号 1~31 var week = CurDate.getDay(); //获得周几 0~6 解释:0是周日 1是周一 这样就能获

javascript得知 - js的Date对象函数

js的Date功能很强大.通常使用. 首先获得当前的日期: var CurDate = new Date(); var Year = CurDate.getFullYear(); //年份(四位 例:2014) var Month = CurDate.getMonth()+1; //月 0~11 var Day = CurDate.getDate(); //获得几号 1~31 var week = CurDate.getDay(); //获得周几 0~6 解释:0是周日 1是周一 这样就能获取到

JS中date日期初始化的5种方法

原文:JS中date日期初始化的5种方法 创建一个日期对象: 代码如下: var objDate=new Date([arguments list]); 参数形式有以下5种: 1)new Date("month dd,yyyy hh:mm:ss"); 2)new Date("month dd,yyyy"); 3)new Date(yyyy,mth,dd,hh,mm,ss); 在程序中我使用的第三种初始化方法,总是显示格式化的参数不正确,仔细看了一下一定要是整型的才可