new Date()返回的是object
var d= new Date();
typeof d // "object"
date的属性方法,都是从构造函数Date()的原型中拿的
获取当前几号
var d= new Date();
d.getDate()
获取当前星期几
var d= new Date();
d.getDay()
返回值是按照西方习惯的,星期日返回0
获取当前月份
var d= new Date();
d.getMonth()
注意月份是从0开始的,如果当前是6月,返回值是5
获取复合当地习惯的,完整日期表示
对于YYYY-MM-DD形式的字符串,JavaScript引擎可能会将其当作ISO格式来解析,采用格林尼治时区作为计时标准;
而对于其他格式的日期字符串,一律视为非ISO格式,采用本地时区作为计时标准。
var d= new Date();
d.toLocaleString()
d.toLocaleDateString()
d.toLocaleTimeString()
需要注意的几个时间
//注意区时的问题
new Date() // Sun Jun 25 2017 17:37:21 GMT+0800 (中国标准时间)
new Date("2017-06-26") // Mon Jun 26 2017 08:00:00 GMT+0800 (中国标准时间)
new Date("2017,06,26") // Mon Jun 26 2017 00:00:00 GMT+0800 (中国标准时间)
获取日期间隔
用两个日期相减可以获取间隔的毫秒数
var d1 = new Date(2000, 2, 1);
var d2 = new Date(2000, 3, 1);
d2 - d1
// 2678400000
获取从当前时间到指定日期的间隔时间
类型转换时,Date对象的实例如果转为数值,则等于对应的毫秒数;如果转为字符串,则等于对应的日期字符串。所以,两个日期对象进行减法运算,返回的就是它们间隔的毫秒数;进行加法运算,返回的就是连接后的两个字符串。
function countdown(str){
var newstr=str.split('-').join(',') //输出
var endTime=new Date(newstr);
var nowTime=new Date();
var distance=endTime-nowTime;
console.log(distance);
var day=Math.floor(distance/(24*60*60*1000));
var hour=Math.floor(distance/(60*60*1000)%24);
var minute=Math.floor(distance/(60*1000)%60);
var second=Math.floor(distance/1000%60);
console.log('距离十一长假还有'+ day+'天'+ hour +'时'+ minute+'分'+second+'秒')
}
countdown('2017-10-01')