js中时间戳与日期时间之间的相互转换
1、时间戳转换为标准日期时间格式:
function timeFormat(dateStr) { var date = new Date(dateStr); Y = date.getFullYear() + '-'; M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; D = date.getDate() + ' '; h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'; s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds(); return Y+M+D+h+m+s; }
返回的日期时间格式为:"yyyy-MM-dd HH:mm:ss",解析如下:
// 简单的一句代码 var date = new Date(时间戳); //获取一个时间对象 /** 1. 下面是获取时间日期的方法,需要什么样的格式自己拼接起来就好了 2. 更多好用的方法可以在这查到 -> http://www.w3school.com.cn/jsref/jsref_obj_date.asp */ date.getFullYear(); // 获取完整的年份(4位,1970) date.getMonth(); // 获取月份(0-11,0代表1月,用的时候记得加上1) date.getDate(); // 获取日(1-31) date.getTime(); // 获取时间(从1970.1.1开始的毫秒数) date.getHours(); // 获取小时数(0-23) date.getMinutes(); // 获取分钟数(0-59) date.getSeconds(); // 获取秒数(0-59)
2. 将日期格式转换成时间戳
// 也很简单 var strtime = '2014-04-23 18:55:49:123'; var date = new Date(strtime); //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。 // 可以这样做 var date = new Date(strtime.replace(/-/g, '/')); // 有三种方式获取,在后面会讲到三种方式的区别 time1 = date.getTime(); time2 = date.valueOf(); time3 = Date.parse(date); /* 三种获取的区别: 第一、第二种:会精确到毫秒 第三种:只能精确到秒,毫秒将用0来代替 比如上面代码输出的结果(一眼就能看出区别): 1398250549123 1398250549123 1398250549000 */
3. Date()参数形式有7种
new Date("month dd,yyyy hh:mm:ss"); new Date("month dd,yyyy"); new Date("yyyy/MM/dd hh:mm:ss"); new Date("yyyy/MM/dd"); new Date(yyyy,mth,dd,hh,mm,ss); new Date(yyyy,mth,dd); new Date(ms);
比如:
new Date("September 16,2016 14:15:05"); new Date("September 16,2016"); new Date("2016/09/16 14:15:05"); new Date("2016/09/16"); new Date(2016,8,16,14,15,5); // 月份从0~11 new Date(2016,8,16); new Date(1474006780);
转载:https://www.jb51.net/article/130303.htm