HTML笔记 ·

时间字符串和long类型之间的转换

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

参与评论