最近在做一些跟时间相关的内容,现在总结些关于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获取年月日及时间戳与日期转换】
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- javascript|javascript中的数据类型转换