美文网首页程序员
JavaScript 玩转时间对象 Date

JavaScript 玩转时间对象 Date

作者: 小菜荔枝 | 来源:发表于2018-09-20 10:29 被阅读0次
JavaScript

0x01 内容介绍

许多朋友在开发的过程中总会遇到各种有关时间的问题,如获取某特定时间的时间戳、把时间对象格式化等等,本篇文章将会帮助大家总结并解决一些常用的时间问题,您可以把它当成一篇字典文章,方便今后查阅、使用

0x02 时间戳

const date = new Date(); //获取时间对象
date.getTime(); //获取当前的时间戳,从1970年1月1日零点到现在的毫秒数
Math.round(date.getTime()/1000); //获取当前的时间戳,根据毫秒数四舍五入的结果
Math.floor(date.getTime()/1000); //获取当前的时间戳,根据毫秒数下舍入
Date.parse(date); // 获取当前时间戳,毫秒是0

0x03 获取日期和时间

let date = new Date();
let year = date.getFullYear();//获取完整的年份(4位,1970-????)
let month = date.getMonth() + 1;//获取当前月份(0-11,0代表1月)
let day = date.getDate();//获取当前日(1-31)
let weekDay = date.getDay();//获取当前星期X(0-6,0代表星期天)
let hour = date.getHours();//获取当前小时数(0-23)
let minute = date.getMinutes();//获取当前分钟数(0-59)
let second = date.getSeconds();//获取当前秒数(0-59)
let milliseconds = date.getMilliseconds();//获取当前毫秒数(0-999)

let setWeekDay = '';
switch (weekDay) {
  case 0:
    setWeekDay = '星期天';
    break;
  case 1:
    setWeekDay = '星期一';
    break;
  case 2:
    setWeekDay = '星期二';
    break;
  case 3:
    setWeekDay = '星期三';
    break;
  case 4:
    setWeekDay = '星期四';
    break;
  case 5:
    setWeekDay = '星期五';
    break;
  case 6:
    setWeekDay = '星期六';
    break;
}

console.log(`今天是${year}年${month}月${day}日 ${setWeekDay} ${hour}时${minute}分${second}秒 ${milliseconds}毫秒`);

// 下面三个语句是在 Node 环境里运行的结果,浏览器里运行的结果与这个不同
date.toLocaleDateString();     //获取日期,YYYY-MM-DD
date.toLocaleTimeString();     //获取时间,HH:mm:ss
date.toLocaleString();        //获取日期与时间,YYYY-MM-DD HH:mm:ss

0x04 实战

要求:写一个通用函数或者类,可以获取当前时间或者用户自定义时间的时间戳和时间格式,也可以实现两者的相互转换

class Datetime {
  constructor(date) {
    if(date) {
      if (date instanceof Date) {
        this.date = date;
      } else {
        throw new Error('构造函数参数错误,应传Date()对象')
      }
    } else {
      this.date = new Date();
    }
  }

  // 转化成时间戳
  transTimeStamp() {
    return this.date.getTime();
  }

  // 转化为时间格式 YYYY-MM-DD HH:mm:ss
  transDateTime() {
    const {date, dateTimeFormat} = this;
    let year = date.getFullYear();//获取完整的年份(4位,1970-????)
    let month = dateTimeFormat(date.getMonth() + 1);//获取当前月份(0-11,0代表1月)
    let day = dateTimeFormat(date.getDate());//获取当前日(1-31)
    let hour = dateTimeFormat(date.getHours());//获取当前小时数(0-23)
    let minute = dateTimeFormat(date.getMinutes());//获取当前分钟数(0-59)
    let second = dateTimeFormat(date.getSeconds());//获取当前秒数(0-59)
    return `${year}-${month}-${day} ${hour}:${minute}:${second}`
  }

  // 格式化
  dateTimeFormat(v) {
    return v < 10 ? `0${v}` : `${v}`
  }

  setDateTime(date) {
    if(date) {
      if (date instanceof Date) {
        this.date = date;
      } else {
        throw new Error('setDateTime函数参数错误,应传Date()对象')
      }
    } else {
      this.date = new Date();
    }
  }
}

// 实现
const date = new Datetime();
console.log(date.transDateTime());
console.log(date.transTimeStamp());
date.setDateTime(new Date('2017-06-05 12:22:23'));
console.log(date.transDateTime());
console.log(date.transTimeStamp());

简书作者 小菜荔枝 转载请联系作者获得授权

相关文章

  • JavaScript 玩转时间对象 Date

    0x01 内容介绍 许多朋友在开发的过程中总会遇到各种有关时间的问题,如获取某特定时间的时间戳、把时间对象格式化等...

  • JavaScript ☞ day2

    JavaScript基础学习笔记之JavaScript提升 了解时间 Date Date对象的方法 Date对象间...

  • JavascriptDate

    JavaScript Date Date 对象 Date 对象用于处理日期与时间。 创建 Date 对象: new...

  • Date

    Date Date对象是JavaScript提供的日期和时间的操作接口 Date对象有几个静态方法 Date.no...

  • JavaScript - 时间对象 Date

    Date 类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能。 创建日期对象: 构造函数不传参数...

  • ife每天笔记更新

    2018.5.18~5.20——JavaScript的Date对象JavaScript Date 对象主要掌握:D...

  • 廖雪峰的JS教程3-标准对象

    标准对象 Date 在JavaScript中,Date对象用来表示日期和时间。 要获取系统当前时间,用: 方法一:...

  • JS标准对象:Date

    一、Date对象 在JavaScript中,Date对象用来表示日期和时间。 要获取系统当前时间,用: 【注意】当...

  • JavaScript Date对象

    JavaScript Date对象用于处理日期和时间。 创建日期 可以通过 new 关键词来定义 Date 对象。...

  • React.js学习笔记(9) Date对象 + ( Momen

    (一) Date对象 概述 Date对象是JavaScript提供的日期和时间的操作接口。它可以表示的时间范围是,...

网友评论

    本文标题:JavaScript 玩转时间对象 Date

    本文链接:https://www.haomeiwen.com/subject/bsrnhxtx.html