在进行时间存储时,经常会对时间字符串进行转型存储,一般都是存储为long类型,下面我先来说一下如何将时间字符串转换为long类型:
如果时间字符串只有年月日,可以这样转储
var ddate = new Date('2014-05-10').getTime();
alert(ddate);
这种方法在谷歌,火狐和ie中都能测试通过,如果说带上了小时分钟和秒
var ddate = new Date('2014-05-10 13:25:50').getTime();
这种方法在谷歌浏览器里可以通过,但是在火狐和ie浏览器里不通过,显示NaN。但是如果var ddate = new Date('2014/05/10 13:25:50').getTime(); 这样写,两个浏览器就都没有问题了,同样谷歌浏览器也没有问题。但是有时候我们的写法就是yy-mm-dd格式的,那么就需要我们进行一下字符串替换了,可以使用下面这个方法。
var ddate = new Date(('2014-05-10 13:25:50').replace(new RegExp("-","gm"),"/")).getTime();
alert(ddate);
下面我们再来说一下将long类型的数据转换为时间字符串格式。
直接看代码吧
Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
} ;
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
} ;
function getFormatDateByLong(l, pattern) {
return getFormatDate(new Date(l), pattern);
}
function getFormatDate(date, pattern) {
if (date == undefined) {
date = new Date();
}
if (pattern == undefined) {
pattern = "yyyy-MM-dd hh:mm:ss";
}
return date.format(pattern);
}
var ddate=getFormatDateByLong(671929874298,"yyyy-MM-dd hh:mm:ss"));
alert(ddate);
这时弹出的ddate为时间字符串了,并且格式为yy-mm-dd hh:mm:ss格式。