关于javascript:javaScript中内置对象Date基本操作入门

9次阅读

共计 5811 个字符,预计需要花费 15 分钟才能阅读完成。

Date 根底语法

/**
 * Date
 *
 * 1970 年 1 月 1 日(UTC)起通过的毫秒数。*
 * 语法
 * new Date();
 * new Date(value);
 * new Date(dateString);
 * new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
 *
 * @params new new Date(): 创立时刻的日期和工夫
 * @params value:Unix 工夫戳
 * @params dateString: 工夫戳字符串,能被 Date.parse() 辨认
 * @params 多个参数:Date.length,长度为 7,可承受的参数个数
 *
 * year:年份,monthIndex:月份 0-11 0 示意 1 月份,date:一个月中的第几天的整数值,从 1 开始。默认值为 1
 * hours:一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)* minutes:分钟局部的整数值。默认值为 0。* seconds:秒局部的整数值。默认值为 0。* milliseconds:示意一个残缺工夫的毫秒局部的整数值。默认值为 0。*
 * 当 Date 作为结构函数调用并传入多个参数时,如果数值大于正当范畴时(如月份为 13 或者分钟数为 70),相邻的数值会被调整。比方 new Date(2013, 13, 1) 等于 new Date(2014, * 1, 1),它们都示意日期 2014-02-01(留神月份是从 0 开始的)。其余数值也是相似,new Date(2013, 2, 1, 0, 70) 等于 new Date(2013, 2, 1, 1, 10),都示意同一个工夫:* 2013-03-01T01:10:00。*
 * 当 Date 作为结构函数调用并传入多个参数时,所定义参数代表的是当地工夫。如果须要应用世界协调时 UTC,应用 new Date(Date.UTC(...)) 和雷同参数
 *
 * */

Date 办法

Date.now(); //  自 1970-1-1 00:00:00  UTC(世界规范工夫)至今所通过的毫秒数。console.log("Date.now()", Date.now()); // 1650598266647

Date.parse(); //  解析一个示意日期的字符串,并返回从 1970-1-1 00:00:00 所通过的毫秒数
console.log("Date.parse()", Date.parse("Dec 25, 1995")); // 1650598266647

Date.UTC()


/**
 * Date.UTC();
 * Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]])
 * @param year 1900 年后的某一年份。* @param month 0 到 11 之间的一个整数,示意月份。* @param date 1 到 31 之间的一个整数,示意某月当中的第几天。* @param hrs 0 到 23 之间的一个整数,示意小时。* @param min 0 到 59 之间的一个整数,示意分钟。* @param sec 0 到 59 之间的一个整数,示意秒。* @param ms 0 到 999 之间的一个整数,示意毫秒
 * 承受的参数同日期构造函数承受最多参数时一样,返回从 1970-1-1 00:00:00 UTC 到指定日期的的毫秒数。*
 * */
const utcDate1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
const utcDate2 = new Date(Date.UTC(0, 0, 0, 0, 0, 0));

console.log(utcDate1.toUTCString());
// Fri, 02 Feb 1996 03:04:05 GMT

console.log(utcDate2.toUTCString());
// Sun, 31 Dec 1899 00:00:00 GMT

实例化 new Date 通用办法


console.log(nowDate.toDateString()); //  ` 以美式英语和人类易读的模式返回一个日期对象日期局部的字符串。console.log(nowDate.toISOString()); // 办法返回一个 ISO(ISO 8601 Extended Format)格局的字符串:YYYY-MM-DDTHH:mm:ss.sssZ。时区总是 UTC(协调世界时),加一个后缀“Z”标识。console.log(nowDate.toJSON()); // 返回 Date 对象的字符串模式



/**
 * toLocaleDateString
 * 返回该日期对象日期局部的字符串,该字符串格局因不同语言而不同。新增的参数 locales 和 options 使程序可能指定应用哪种语言格式化规定,容许定制该办法的体现
 *(behavior)。在旧版本浏览器中,locales 和 options 参数被疏忽,应用的语言环境和返回的字符串格局是各自独立实现的。*
 * */
const options = {
  weekday: "long",
  year: "numeric",
  month: "long",
  day: "numeric",
};
console.log(nowDate.toLocaleDateString("de-DE", options));


/**
 * toLocaleString
 * 办法返回该日期对象的字符串,该字符串格局因不同语言而不同。新增的参数 locales 和 options 使程序可能指定应用哪种语言格式化规定
 * 容许定制该办法的体现(behavior)。在旧版本浏览器中,locales 和 options 参数被疏忽,应用的语言环境和返回的字符串格局是各自独立实现的。*
 * */
 
console.log(nowDate.toLocaleString("en-GB", { timeZone: "UTC"}));


/**
 * toLocaleTimeString
 * 办法返回该日期对象工夫局部的字符串,该字符串格局因不同语言而不同。新增的参数 locales 和 options 使程序可能指定应用哪种语言格式化规定
 * 容许定制该办法的体现(behavior)。在旧版本浏览器中,locales 和 options 参数被疏忽,应用的语言环境和返回的字符串格局是各自独立实现的。*
 * */
console.log(nowDate.toLocaleTimeString("en-US"));

console.log(nowDate.toString()); // 返回一个字符串,示意该 Date 对象。console.log(nowDate.toTimeString()); // 以人类易读模式返回一个日期对象工夫局部的字符串,该字符串以美式英语格式化。console.log(nowDate.toUTCString()); // 把一个日期转换为一个字符串,应用 UTC 时区。/**
 * valueOf() 办法返回一个 Date 对象的原始值。*
 * */
const date1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
console.log(date1.valueOf()); // 823230245000

const date2 = new Date("02 Feb 1996 03:04:05 GMT");
console.log(date2.valueOf()); // 823230245000

Date 工夫操作

在整顿 Date 工夫操作过程中,依据法则,对一些办法进行了归类

工夫操作相干的 get 办法


console.log(nowDate.getDate()); // 获取月份的某天

console.log(nowDate.getDay()); // 一周的第几天,0 示意星期天

console.log(nowDate.getFullYear()); // 取代 getyear(), 获取年份

console.log(nowDate.getHours()); // 一个指定的日期对象的小时

console.log(nowDate.getMilliseconds()); // 指定的日期对象的毫秒数

console.log(nowDate.getMinutes()); // 日期对象的分钟数。console.log(nowDate.getMonth()); //  指定的日期对象的月份,为基于 0 的值(0 示意一年中的第一月)console.log(nowDate.getSeconds()); // 指定的日期对象的秒数

console.log(nowDate.getTime()); // 示意从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即协调世界时)间隔该日期对象所代表工夫的毫秒数。console.log(nowDate.getTimezoneOffset()); // 返回协调世界时(UTC)绝对于以后时区的工夫差值,单位为分钟。

以世界时 UCT 为规范获取工夫

console.log(nowDate.getUTCDate()); // 以世界时为规范,返回一个指定的日期对象为一个月中的第几天

console.log(nowDate.getUTCDay()); // 以世界时为规范,返回一个指定的日期对象为一星期中的第几天,其中 0 代表星期天。console.log(nowDate.getUTCFullYear()); // 以世界时为规范,返回一个指定的日期对象的年份。console.log(nowDate.getUTCHours()); // 以世界时为规范,返回一个指定的日期对象的小时数。console.log(nowDate.getUTCMilliseconds()); // 以世界时为规范,返回一个指定的日期对象的毫秒数。console.log(nowDate.getUTCMinutes()); // 以世界时为规范,返回一个指定的日期对象的分钟数。console.log(nowDate.getUTCMonth()); // 以世界时为规范,返回一个指定的日期对象的月份,它是从 0 开始计数的(0 代表一年的第一个月)。console.log(nowDate.getUTCSeconds()); // 以世界时为规范,返回一个指定的日期对象的秒数。

工夫操作相干的设置 set 工夫

console.log(nowDate.setDate(24)); // 获取月份的某天

console.log(nowDate.setTime(12)); // 示意从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即协调世界时)间隔该日期对象所代表工夫的毫秒数。console.log(nowDate.setHours(12)); // 依据本地工夫为一个日期对象设置小时数,返回从 1970-01-01 00:00:00 UTC 到更新后的 日期 对象实例所示意工夫的毫秒数。console.log(nowDate.setMilliseconds(456)); // 依据本地工夫设置一个日期对象的豪秒数。console.log(nowDate.setMinutes(40)); // 依据本地工夫为一个日期对象设置分钟数。console.log(nowDate.setMonth(3)); // 依据本地工夫为一个设置年份的日期对象设置月份。console.log(nowDate.setSeconds(3)); // 依据本地工夫设置一个日期对象的秒数。console.log(nowDate.setTime(new Date().getTime())); // 办法以一个示意从 1970-1-1 00:00:00 UTC 计时的毫秒数为来为 Date 对象设置工夫。console.log(nowDate.setTime(new Date().getTime())); // 办法以一个示意从 1970-1-1 00:00:00 UTC 计时的毫秒数为来为 Date 对象设置工夫。

以世界时为规范设置 set 工夫

console.log(nowDate.setUTCDate(19)); // 依据寰球工夫设置特定 date 对象的日期。console.log(nowDate.setUTCFullYear(1975)); // 依据世界规范工夫为一个具体日期设置年份

console.log(nowDate.setUTCHours(23)); // 依据世界规范工夫为一个具体日期设置小时数, 返回从 1970-01-01 00:00:00 UTC 到更新后的 日期 对象实例所示意工夫的毫秒数。console.log(nowDate.setUTCMilliseconds(420)); // 依据世界时来设置指定工夫的毫秒数。console.log(nowDate.setUTCMinutes(25)); // 依据世界协调时(UTC)来设置指定日期的分钟数。console.log(nowDate.setUTCMonth(11)); // 依据世界协调时(UTC)来设置设置一个精确的月份

console.log(nowDate.setUTCSeconds(39)); // 依据世界协调时(UTC)来设置设置一个设置秒数

小结

以上整顿了对于 js 中内置对象 Date 的一些根底的操作方法, 更加具体的办法能够拜访

JavaScript 规范内置对象 Date


举荐 Date 操作插件

  • momentjs http://momentjs.cn/
    根底应用办法:
npm install moment --save

import moment from "moment";

console.log(moment().format("YYYY-MM-DD"));

  • dayjs https://dayjs.fenxianglu.cn/
    根底应用办法:

    npm install dayjs --save
    
    import dayjs from 'dayjs'
    
    dayjs().format();
    
    // 毫秒工夫戳
    dayjs(1318781876406).format('YYYY-MM-DD HH:mm:ss'); // 2011-10-17 00:17:56
    
    

源码地址

  • 码云 https://gitee.com/lewyon/vue-note
  • githup https://github.com/akari16/vue-note

文章集体博客地址:http://lewyon.xyz/dateFun.html

欢送关注公众号:程序猿布欧,不定期更新一些前端入门文章

创作不易,转载请注明出处和作者。

正文完
 0