最近在开发跨平台的应用,在做秒杀功能时,倒计时出现了问题。默认在Chrome浏览器中运行,倒计时没出现问题。而在IE浏览器,火狐浏览器,safari浏览器上运行时,则显示NaN天NaN时NaN分(或显示天时分)。上网查了好多日期转换的函数都没有解决问题。
在浏览器断点调试下发现curTime,endTime,dDate的值显示为NaN。大体查了一下NaN.
NaN 相关链接 http://www.w3school.com.cn/jsref/jsref_nan_number.asp
NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。
仅仅修改了一行代码:
将var dDate = new Date(Date.parse(sDate));
改为var dDate = new Date(Date.parse(sDate.replace(/-/g,"/")));
js中 replace(/-/g, '/') 什么作用.
/-/g 是正则表达式
表示将所有短横线-替换为斜杠/,其中g表示全局替换
/g意思就是:global可选标志,带这个标志表示替换将针对行中每个匹配的串进行,否则则只替换行中第一个匹配串。如:we.fdffddfwe.加上/g后,则2个we都会出来;
讲解:
/pattern/是正则表达式的界定符,里面的内容(pattern)是要匹配的内容,就是本例中的/\//;
\是转义的意思,\/代表的是/字符。
1.c_promo.js
var tArr = [];
(function () {
var sCurTime = getCurTime();//yyyy-MM-dd HH:mm:ss
$("[data-type='promo']").each(function (i, o) {
var id = $(this).attr("data-id");
var sEndTime = $(this).find("[name='endTime']").val();
var curTime = getDateByStr(sCurTime);
9 var endTime = getDateByStr(sEndTime);
10 var t = endTime.getTime() - curTime.getTime();
if (t < 0) {
return true;
}
var obj = {t: t, id: id};
tArr.push(obj);
});
setIntervalTime();
setInterval(setIntervalTime, 1000);
})();
function setIntervalTime() {
$(tArr).each(function (i, o) {
var id = o.id;
var t = o.t;
t = t - 1000;
var o1 = parseTime(t);
o.t = t;
$("[data-id='" + id + "']").find(".hour").html(o1.h);
$("[data-id='" + id + "']").find(".min").html(o1.m);
$("[data-id='" + id + "']").find(".sec").html(o1.s);
});
}
2.common.js
function parseTime(t) {
var d = Math.floor(t / 1000 / 60 / 60 / 24);
var h = Math.floor(t / 1000 / 60 / 60 % 24);
var m = Math.floor(t / 1000 / 60 % 60);
var s = Math.floor(t / 1000 % 60);
//if (d > 0) {
// h = "--";
// m = "--";
// s = "--";
//} else if (d < 0) {
// h = "00";
// m = "00";
// s = "00";
//} else {
if (h < 10) {
h = "0" + h;
}
if (m < 10) {
m = "0" + m;
}
if (s < 10) {
s = "0" + s;
}
//}
var timeObj = {
d: d, h: h, m: m, s: s, t: t
};
return timeObj;
}
function getDateByStr(sDate) {
// var dDate = new Date(Date.parse(sDate));
34 var dDate = new Date(Date.parse(sDate.replace(/-/g,"/")));
return dDate;
}
js网页倒计时功能(天,时,分,秒)
给定任何一个时间,然后实现现在到那个时间的倒计时. 下面的例子是显示现在到2019年8月1号0时0分的倒计时:
Delphi: TLabel设置EllipsisPosition属性用...显示过长文本时,以Hint显示其全文本
仍然是处理多语言中碰到问题. Delphi自2006版以后,TLabel有了EllipsisPosition属性,当长文本超过其大小时,显示以...,如下图: 这样虽然解决显示问题,但很显然,不知道. ...
Windows 窗体的自适应分辨率、分屏显示、开机自启动
前言 这里所说的针对Winform.WPF 都适用.开机自启动对于控制台的也可以. 还是从项目实践中得来的,在这里记录下来. 对于自适应.分屏显示,在以前感觉应该比较高大上的问题,会比较难.在经过这次 ...
json,js中typeof用法详细介绍及NaN、 null 及 undefined 的区别
JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 在js使用中的一个函 ...
js倒计时 手机休眠时 时间不进行减少
http://www.111cn.net/wy/js-ajax/94218.htm 手机版网页js倒计时存在的问题与解决的方法 www.111cn.net 更新:2015-09-16 编辑:kp123 ...
js倒计时显示
j ...js(jquery)鼠标移入移出事件时,出现闪烁、隐藏显示隐藏显示不停切换的情况
$(".guanzhu").hover(function(){ $(".weixinTop").show(); },functio ...
js 倒计时 跳转
1. setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. setTimeout() 只执行 code 一次.如果要多次调用,请使用 setInterval() 或者让 code ...
js倒计时-倒计输入的时间
计算指定时间到指定时间之间相差多少天.时.分.秒. 节日.活动.商城常用. 原理: 主要使用到时间戳,也就是从1970 年 1 月 1 日 到指定时间的毫秒数. 1. 求出毫秒差 :当两个时间直接进行 ...
随机推荐
通过transform属性改变图片的位置大小等信息
对UIImageView的位置大小方向的改变可以通过改变其transform属性值实现. 位置改变: var transform = CGAffineTransformMakeTranslation( ...
JS复制对象
CSSCommonJS.DeepCopy = function (json) { if (typeof json == 'number' || typeof json == 'string' || t ...
<;我的外骨骼,诺基>;后的访谈
后的访谈 在接下采访任务之前,我对杨贵福的了解仅仅限于:有名的科幻作家,男性,成年.我虽然读过他的许多作品,但在这些作品中并不能找到作者的影子.我试着从作品的行文风格中 ...
如何在Django中配置MySQL数据库
直接上图 在项目中直接找到settings 文件 第一步 原始Django自带数据库 第二步将配置改成MySQL的数据 第三步 在__init__文件中告知Django使用MySQL数据 ...
topcoder srm 692 div1 -23
1.给定一个带权有向图.选出一些边满足使得任意两点可相互到达的前提下使得选出的边的权值的最大最小差值最小. 思路:二分答案,然后枚举权值的范围判断是否可行. #include
P3317 [SDOI2014]重建
思路 变元矩阵树定理可以统计最小生成树边权积的和,将A矩阵变为边权,D变为与该点相连的边权和,K=D-A,求K的行列式即可 把式子化成 \[ \begin{align}&\sum_{T}\pr ...
终止执行js的方法
(一)在function里面 (1)return;(2)return false; (二)非function方法里面 alert("before error.");throw Sy ...
分模块开发创建Action子模块——(九)
web层选择war打包方式. 1.右击父工程新建maven模块
python基础之变量和简单数据类型
1.1 变量的命名和使用规范 变量名可以包含数字.字母.下划线,但是不能以数字开头. 变量名不能包含空格,可使用下划线来分割其中的单词. 不要将Python关键字和函数名用作变量名. 变量名应既简短又 ...
CodeForces - 990G GCD Counting
Discription You are given a tree consisting of nn vertices. A number is written on each vertex; the ...