您的位置:首页 > Web前端 > JavaScript

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

2016-11-23 14:59 267 查看
最近在做一些跟时间相关的内容,现在总结些关于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); 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: