在调用Date构造函数而不传递参数的情况下,新创建的对象自动获取的是当期日期和时间。如上例子。
如果想根据特定的日期和时间创建日期对象,必须传入表示该日期的毫秒数。
创建日期对象方法一:
var now = new Date(); // 创建日期对象,返回当前系统时间
console.log(now) // Tue Feb 19 2019 18:07:06 GMT+0800 (中国标准时间)
创建日期对象方法二:
var date = new Date('2018-9-19');
var dt2 = new Date("May 3,2015");
var dt3 = new Date("2015/5/3");
console.log(data);获得当前中国时间
console.log(data.getTime());1970年到现在的毫秒数
console.log(data.valueOf());1970年到现在的毫秒数
console.log(Date.now());1970年到现在的毫秒数
console.log(+new Date());1970年到现在的毫秒数
日期对象Date的方法主要分为三大组:
1)、setXxx 用于设置时间和日期值
2)、getXxx 用于获取时间和日期值
3)、toXxx 用于将日期转换为指定格式
一、设置日期时间的方法:
setFullYear()可以设置年、月、日
setMonth()可以设置月、日
setDtae()可以设置日期
setHours()可以设置 时、分、秒、毫秒
setMinutes()可以设置 分、秒、毫秒
setSeconds()可以设置 秒、毫秒
二、获取日期时间的方法
getFullYear() 获取当前年份
getMonth() 获取当前月份 0-11月
getDate() 获取当前日期 1-31日
getDay() 获取当前星期 0-6
getHours() 获取当前小时 0-23小时
getMinutes() 获取当前分钟 0-59分钟
getSeconds() 获取当前秒数 0-59秒
getMilliseconds() 获取当前的毫秒数
getTime() 获取当前累计毫秒数(19701.1午夜到当前)
天时分秒毫秒换算公式
let t = Math.floor(val / 1000); // 毫秒 => 秒
let d = Math.floor(t / 86400); // 天
let h = Math.floor(t % 86400 / 3600) // 时
let m = Math.floor(t % 86400 % 3600 / 60) // 分
let s = t % 60; // 秒
let hs = ((val % 1000) / 10).toString().substr(0, 1); //毫秒
Date 类型还有一些专门用于将日期格式化为字符串的方法,这些方法如下。
toDateString() ——以特定于实现的格式显示星期几、月、日和年;
toTimeString() ——以特定于实现的格式显示时、分、秒和时区;
toLocaleDateString() ——以特定于地区的格式显示星期几、月、日和年;
toLocaleTimeString() ——以特定于实现的格式显示时、分、秒;
toUTCString() ——以特定于实现的格式完整的 UTC 日期。
与 toLocaleString() 和 toString() 方法一样,以上这些字符串格式方法的输出也是因浏览器
而异的,因此没有哪一个方法能够用来在用户界面中显示一致的日期信息。
// js页面展示实时时间demo
function timeFun() {
var now = new Date();
var fullYear = now.getFullYear(); // 年
var month = now.getMonth(); // 月
month = month < 10 ? '0'+ month : month;
var date = now.getDate(); // 日
date = date < 10 ? '0'+ date : date;
var day = now.getDay(); // 星期
var hours = now.getHours(); // 时
hours = hours < 10 ? '0'+ hours : hours;
var minutes = now.getMinutes(); // 分
minutes = minutes < 10 ? '0'+ minutes : minutes;
var seconds = now.getSeconds(); //秒
seconds = seconds < 10 ? '0' + seconds : seconds
var week1;
switch(day){
case 0: week1 = "星期日";break;
case 1: week1 = "星期一";break;
case 2: week1 = "星期二";break;
case 3: week1 = "星期三";break;
case 4: week1 = "星期四";break;
case 5: week1 = "星期五";break;
case 6: week1 = "星期六";break;
}
document.body.innerHTML = fullYear + '年' + (month + 1) + '月' + date + '日' + ' ' + week1 + ' ' + hours + '点' + minutes + '分' + seconds + '秒';
setInterval(timeFun,1000)
}
timeFun()
// 60秒倒计时
function downFun(params) {
var down = 60;
setInterval(function () {
if ((down --) <=0) {
down = 60
}
document.body.innerHTML = down
}, 1000)
} downFun()
带天的倒计时
// 天、时、分、秒的倒计时
function countDown(times) {
var timer = null;
timer = setInterval(function () {
var day = 0,
hour = 0,
minute = 0,
second = 0,
hs = 0;//时间默认值
if (times > 0) {
day = Math.floor(times / (60 * 60 * 24)); // 天
hour = Math.floor(times / (60 * 60)) - (day * 24); // 时
minute = Math.floor(times / 60) - (day * 24 * 60) - (hour * 60); // 分
second = Math.floor(times) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60); // 秒
}
if (day <= 9) day = '0' + day;
if (hour <= 9) hour = '0' + hour;
if (minute <= 9) minute = '0' + minute;
if (second <= 9) second = '0' + second;
//
document.body.innerHTML = (day + "天:" + hour + "小时:" + minute + "分钟:" + second + "秒");
times--;
}, 1000);
if (times <= 0) {
clearInterval(timer);
}
}
countDown(182536)
带毫秒的倒计时
// 带毫秒
var overDate = 1000 * 60 * 60 *24 *3; // 当前时间+3天
var NowTime = new Date(); // 当前时间
var EndTime = new Date(NowTime.getTime() + overDate); // 当前时间加3天后的时间(结束时间戳)
// 将结束的时间戳转换成年、月、日、时、分、秒
var n = EndTime.getFullYear()+'年',
y = (EndTime.getMonth()+1)+'月',
r = EndTime.getDate()+'日',
s = EndTime.getHours()+'时',
f = EndTime.getMinutes()+'分',
m = EndTime.getSeconds()+'秒';
// 单数的时候前面补0
y = y < 10 ? '0' + y : y;
r = r < 10 ? '0' + r : r;
s = s < 10 ? '0' + s : s;
f = f < 10 ? '0' + f : f;
m = m < 10 ? '0' + m : m;
var EndTimeMsg = n + y + r + s + f + m; // 结束时间转换后的结果
function getTime() { // 倒计时函数
NowTime = new Date(); // 重新赋值当前时间
var nMs = EndTime.getTime() - NowTime.getTime(); // 结束时间毫秒 - 当前时间毫秒 = 倒计时毫秒
// 将倒计时毫秒转换成天、时、分、秒、毫秒
var nD = Math.floor(nMs / (1000 * 60 * 60 *24)) +'天',
nH = Math.floor(nMs / (1000 * 60 * 60)) % 24 +'时',
nM = Math.floor(nMs / (1000 * 60)) % 60 +'分',
nS = Math.floor(nMs / 1000) % 60 +'秒',
nMs = Math.floor(nMs / 100) % 10; // 毫秒
var nDate = nD + nH + nM + nS + nMs;
// console.log(nDate)
if(parseInt(nD) >= 0){
document.body.innerHTML = '距离'+EndTimeMsg+ ' 还剩 ' +nDate;
} else {
document.body.innerHTML = "时间过期";
}
setTimeout('getTime()',10)
}getTime()