js获取年月日及时间戳与日期转换

最近在做一些跟时间相关的内容,现在总结些关于js中年月日的获取,以及时间戳和日期的相互转换方法,总结知识,便于理解和记忆。
1.js中获取当前时间和日期的函数如下:

var now = new Date(); //获取当前年月日: Tue Nov 22 2016 17:34:55 GMT+0800 (中国标准时间) var year_2 = now.getYear(); //已过时,介于1900与1999之间年份返回两位数字,其他的返回三位数字 var year_4 = now.getFullYear(); //获取完整的年份(4位,1970-????) var month = now.getMonth(); //获取当前月(0-11,0代表1月,老外系统,国内加1) var date = now.getDate(); //获取当前日(1-31) var day = now.getDay(); //获取当前星期X(0-6,0代表星期天) var day_string = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")[now.getDay()]; //星期二 var hours = now.getHours(); //获取当前时((0-23) var minutes = now.getMinutes(); //获取当前分钟数(0-59) var seconds = now.getSeconds(); //获取当前秒数(0-59) var milliSeconds = now.getMilliseconds(); //获取当前毫秒数(0-999) var now_date = now.toLocaleDateString(); //获取当前日期: 2016/11/22 var now_time = now.toLocaleTimeString(); //获取当前时间: 下午5:35:55 var date_time = now.toLocaleString( ); //获取日期与时间: 2016/11/22 下午5:35:55 var d = now.toDateString(); //Wed Nov 23 2016 var t = now.toTimeString(); //15:11:30 GMT+0800 (中国标准时间) var d_t = now.toString(); //Wed Nov 23 2016 15:11:30 GMT+0800 (中国标准时间)



实例运用如下:

//获取当前日期和时间(如:2016/06/12 12:00) function getCurrentTime(){ var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var date = now.getDate(); var hours = now.getHours(); var minutes = now.getMinutes(); if(month<10){ month = "0"+month; } if(date<10){ date = "0"+date; } if(hours<10){ hours = "0"+hours; } if(minutes<10){ minutes = "0"+minutes; } /* 简单写法 hours = now.getHours() < 10 ? "0"+now.getHours() : now.getHours(); minute = now.getMinutes() < 10 ? "0"+now.getMinutes() : now.getMinutes(); second = date.getSeconds() < 10 ? "0"+date.getSeconds() : date.getSeconds(); */ var currentTime = year+"/"+month+"/"+date+" "+hours+":"+minutes; return currentTime; } var current = getCurrentTime();



2.时间戳转为日期格式:

//当前时间戳为:A=1479881014,北京时间:B=2016/11/23 下午2:03:34,C=Wed Nov 23 2016 14:03:34 GMT+0800 (中国标准时间) var date1 = new Date(1479881014 * 1000); //js中是以毫秒为单位要乘以1000 结果格式为C


3.日期转为时间戳:

var date2 = new Date("2016/11/23 2:03:34:123"); //传入时间格式,不传获取当前时间,结果格式为C var time1 = date2.getTime(); //1479837814123 var time2 = date2.valueOf(); //1479837814123 var time3 = Date.parse(date2); //1479837814000


三种方法都可以,只是前两种精确到毫秒,第三种毫秒用0代替
获得的时间戳除以1000就可以得到unix的时间戳了
getTime
语法:dateObject.getTime();
dateObject 指定的日期和时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数。
valueOf
date 的毫秒表示。返回值和方法 Date.getTime 返回的值相等。
parse
语法:Date.parse(datestring)
datestring必需。表示日期和时间的字符串
parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数
var d = Date.parse("Jul 8, 2016");
new Date()
参数形式有以下5种:
1)new Date("month dd,yyyy hh:mm:ss");
2)new Date("month dd,yyyy");
3)new Date(yyyy,mth,dd,hh,mm,ss); //必须为整型
4)new Date(yyyy,mth,dd);
5)new Date(ms);
需要注意最后一种形式,参数表示的是需要创建的时间和 GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:
month:用英文 表示月份名称,从January到December
mth:用整数表示月份,从1(1月)到12(12月)
dd:表示一个 月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm: 分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
如:
new Date("January 12,2016 22:19:35");
new Date("January 12,2016");
new Date(2016,1,12,22,19,35);
new Date(2016,1,12);
new Date(1137075575000);
【js获取年月日及时间戳与日期转换】

    推荐阅读