JavaScript引用类型(二)日期类型Date总结

在调用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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值