时间格式的转换方法集合

我们在处理时间时,总会遇到各种格式之间的转换,今天我就记录一下,各种时间格式转换的一些方法。

一. 将“2017-04-19 11:40:15”,“2017-04-19”,“Wed, 09 Aug 1995 00:00:00”,“Aug 9, 1995”这几种格式的时间转换为 毫秒数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//方法1
function parseDate(dateStr)
{
var regEx=new RegExp("\\-","gi");
dateStr=dateStr.replace(regEx,"/");
return Date.parse(dateStr);
}
//方法2
function getTime(dateStr)
{
dateStr = dateStr.replace(/-/g,"/");
var d = new Date(dateStr);
return d.getTime();
}

二. 只是处理“2017-04-19 11:40:15”转换为毫秒(ms)数的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function stringDateTimeToMiliTime(str)
{
var time = new Date().getTime();
try{
var y = Math.floor(str.substring(0,4));
var m = Math.floor(str.substring(5,7))-1;
var d = Math.floor(str.substring(8,10));
var t_h = Math.floor(str.substring(11,13));
var t_m = Math.floor(str.substring(14,16));
var t_s = Math.floor(str.substring(17,19));
var my_date = new Date();
my_date.setYear(y);
my_date.setMonth(m);
my_date.setDate(d);
my_date.setHours(t_h);
my_date.setMinutes(t_m);
my_date.setSeconds(t_s);
my_date.setMilliseconds(0);
time = my_date.getTime();
}catch(e){
//抛出异常,传入的时间格式不对
}
return time;
}

三. 将毫秒(ms)数转换为“yy-mm-dd”的格式

1
2
3
4
5
6
7
8
9
10
function longToDate(time)
{
var date=new Date(time);
var y=date.getFullYear();
var m=date.getMonth()+1;
if(m<10)m="0"+m;
var d=date.getDate();
if(d<10)d="0"+d;
return y+"-"+m+"-"+d;
}

四. 将毫秒(ms)数转换为“yy-mm-dd hh:mm:ss”的格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function longToDatetime(time)
{
var date=new Date(time);
var y=date.getFullYear();
var m=date.getMonth()+1;
if(m<10)m="0"+m;
var d=date.getDate();
if(d<10)d="0"+d;
var h=date.getHours();
if(h<10)h="0"+h;
var i=date.getMinutes();
if(i<10)i="0"+i;
var s=date.getSeconds();
if(s<10)s="0"+s;
return y+"-"+m+"-"+d+" "+h+":"+i+":"+s;
}

五. 将“hh:mm:ss”的时间格式转换为毫秒(ms)数

1
2
3
4
5
6
7
8
9
10
function time2Int(duration)
{
var time = 0;
if(duration)
{
var t = duration.split(":");
time = Math.floor(t[0])*3600 + Math.floor(t[1])*60 + Math.floor(t[2]);
}
return time;
}

六. 将毫秒(ms)数转换为“hh:mm:ss”的格式(注意,这个毫秒数,不要是“yy-mm-dd hh:mm:ss”的格式转换过来的,要是“hh:mm:ss”转换的毫秒数)

1
2
3
4
5
6
7
8
9
10
11
function msToString(sec)
{
var hour = Math.floor(sec/3600);
var minute = Math.floor((sec - hour*3600)/60);
var second = Math.floor(sec - hour*3600 - minute*60);
if(hour>=24)hour=hour-24;
hour = hour>9?hour:"0"+hour;
minute = minute>9?minute:"0"+minute;
second = second>9?second:"0"+second;
return hour+":"+minute+":"+second;
}