天天看点

c语言long的格式字符串,时间字符串和long类型之间的转换

2015-08-29 10:15:01

在进行时间存储时,经常会对时间字符串进行转型存储,一般都是存储为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格式。