moment常用方法总结

您所在的位置:网站首页 闹钟使用方法 moment常用方法总结

moment常用方法总结

2024-03-09 14:00| 来源: 网络整理| 查看: 265

add() moment().add(Number, String); moment().add(Duration); moment().add(Object);

通过增加时间来改变原始的 moment。

这是一个相当稳健的功能,可以为现有的 moment 增加时间。 若要增加时间,则传入要增加的时间的键、以及要增加的数量。

moment().add(7, 'days');

如果对希望简短,也有一些快捷的键。

moment().add(7, 'd'); 键快捷键yearsyquartersQmonthsMweekswdaysdhourshminutesmsecondssmillisecondsms

如果要同时增加多个不同的键,则可以将它们作为对象字面量传入。

moment().add(7, 'days').add(1, 'months'); // 链式 moment().add({days:7,months:1}); // 对象字面量 subtract() moment().subtract(Number, String); moment().subtract(Duration); moment().subtract(Object);

通过减去时间来改变原始的 moment。

这与 moment#add 完全相同,只是不增加时间,而是减去时间。

moment().subtract(7, 'days'); startOf() moment().startOf(String);

通过将原始的 moment 设置为时间单位的开头来对其进行更改。

moment().startOf('year'); // 设置为今年一月1日上午 12:00 moment().startOf('month'); // 设置为本月1日上午 12:00 moment().startOf('quarter'); // 设置为当前季度的开始,即每月的第一天上午 12:00 moment().startOf('week'); // 设置为本周的第一天上午 12:00 moment().startOf('isoWeek'); // 根据 ISO 8601 设置为本周的第一天上午 12:00 moment().startOf('day'); // 设置为今天上午 12:00 moment().startOf('date'); // 设置为今天上午 12:00 moment().startOf('hour'); // 设置为当前时间,但是 0 分钟、0 秒钟、0 毫秒 moment().startOf('minute'); // 设置为当前时间,但是 0 秒钟、0 毫秒 moment().startOf('second'); // 与 moment().milliseconds(0); 相同

这些快捷方式与以下的基本相同。

moment().startOf('year'); moment().month(0).date(1).hours(0).minutes(0).seconds(0).milliseconds(0); moment().startOf('hour'); moment().minutes(0).seconds(0).milliseconds(0) endOf() moment().endOf(String);

通过将原始的 moment 设置为时间单位的末尾来对其进行更改。

这与 moment#startOf 相同,只是将其设置为时间单位的末尾,而不是设置为时间单位的开头。

moment().endOf("year"); // 将 moment 设置为今年的 12 月 31 日 23:59:59.999 format() moment().format(); moment().format(String);

这是最稳健的显示选项。 它接受一串令牌并将其替换为其相应的值。

moment().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601,无小数秒钟) moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm" moment().format("ddd, hA"); // "Sun, 3PM" moment('gibberish').format('YYYY MM DD'); // "Invalid date" 令牌输出月份M1 2 ... 11 12Mo1st 2nd ... 11th 12thMM01 02 ... 11 12MMMJan Feb ... Nov DecMMMMJanuary February ... November December季度Q1 2 3 4Qo1st 2nd 3rd 4th月份的日期D1 2 ... 30 31Do1st 2nd ... 30th 31stDD01 02 ... 30 31年份的日期DDD1 2 ... 364 365DDDo1st 2nd ... 364th 365thDDDD001 002 ... 364 365星期几d0 1 ... 5 6do0th 1st ... 5th 6thddSu Mo ... Fr SadddSun Mon ... Fri SatddddSunday Monday ... Friday Saturday星期几(语言环境)e0 1 ... 5 6星期几(ISO)E1 2 ... 6 7年份的星期w1 2 ... 52 53wo1st 2nd ... 52nd 53rdww01 02 ... 52 53年份的星期(ISO)W1 2 ... 52 53Wo1st 2nd ... 52nd 53rdWW01 02 ... 52 53年份YY70 71 ... 29 30YYYY1970 1971 ... 2029 2030Y1970 1971 ... 9999 +10000 +10001 注意:对于 9999 年以后的日期,这符合 ISO 8601 标准。周年gg70 71 ... 29 30gggg1970 1971 ... 2029 2030周年(ISO)GG70 71 ... 29 30GGGG1970 1971 ... 2029 2030子午线AAM PMaam pm小时H0 1 ... 22 23HH00 01 ... 22 23h1 2 ... 11 12hh01 02 ... 11 12k1 2 ... 23 24kk01 02 ... 23 24分钟m0 1 ... 58 59mm00 01 ... 58 59秒钟s0 1 ... 58 59ss00 01 ... 58 59小数秒钟S0 1 ... 8 9SS00 01 ... 98 99SSS000 001 ... 998 999SSSS ... SSSSSSSSS000[0..] 001[0..] ... 998[0..] 999[0..]时区z or zzEST CST ... MST PST 注意:从 1.6.0 版本开始,z/zz 格式的令牌已从普通的 moment 对象中弃用。 在此处了解更多信息。 但是,如果将特定时区与 moment-timezone 插件一起使用,它们会起作用。Z-07:00 -06:00 ... +06:00 +07:00ZZ-0700 -0600 ... +0600 +0700Unix 时间戳X1360013296Unix 毫秒时间戳x1360013296123 本地化格式

由于首选的格式会根据语言环境而有所不同,因此有一些令牌可用于根据语言环境格式 moment。

同一格式有大小写变体。 小写版本旨在作为大写版本的简化版本。

时间LT8:30 PM带秒钟的时间LTS8:30:25 PM月份数字,月份日期,年份L09/04/1986l9/4/1986月份名称,月份日期,年份LLSeptember 4, 1986llSep 4, 1986月份名称,月份日期,年份,时间LLLSeptember 4, 1986 8:30 PMlllSep 4, 1986 8:30 PM月份名称,月份日期,星期几,年份,时间LLLLThursday, September 4, 1986 8:30 PMllllThu, Sep 4, 1986 8:30 PM

l ll lll llll 在 2.0.0 中可用。 LTS 新增于 2.8.4。

转义字符

要转义格式字符串中的字符,可以将字符包装在方括号中。

moment().format('[今天] dddd'); // '今天 Sunday' fromNow() moment().fromNow(); moment().fromNow(Boolean);

显示时间的常用方法是通过 moment#fromNow 处理。 有时称为时间间隔或相对时间。

moment([2007, 0, 29]).fromNow(); // 4 年前

If you pass true, you can get the value without the suffix. 如果传入 true,则可以获得不带后缀的值。

moment([2007, 0, 29]).fromNow(); // 4 年前 moment([2007, 0, 29]).fromNow(true); // 4 年 from() moment().from(Moment|String|Number|Date|Array); moment().from(Moment|String|Number|Date|Array, Boolean);

可能想要显示 moment 与现在以外的时间的相对时间。 在这种情况下,可以使用 moment#from。

var a = moment([2007, 0, 28]); var b = moment([2007, 0, 29]); a.from(b) // "1 天前"

第一个参数是可以传给 moment() 的任何值或实际的 Moment。

var a = moment([2007, 0, 28]); var b = moment([2007, 0, 29]); a.from(b); // "1 天前" a.from([2007, 0, 29]); // "1 天前" a.from(new Date(2007, 0, 29)); // "1 天前" a.from("2007-01-29"); // "1 天前"

与 moment#fromNow 一样,将 true 用作第二个参数会返回不带后缀的值。 无论何时需要有可读的时间长度,这都非常有用。

var start = moment([2007, 0, 5]); var end = moment([2007, 0, 10]); end.from(start); // "5 天内" end.from(start, true); // "5 天" toNow() moment().toNow(); moment().toNow(Boolean);

显示时间的常用方法是通过 moment#toNow 处理。 有时称为时间间隔或相对时间。

这类似于 moment.fromNow,但给出相反的间隔:a.fromNow() = - a.toNow()。

这类似于 moment.to,但在当前时间有特殊情况。 如果要控制间隔的两个端点,则使用 moment.to。

moment([2007, 0, 29]).toNow(); // 4 年内

如果传入 true,则可以获取不带前缀的值。

moment([2007, 0, 29]).toNow(); // 4 年内 moment([2007, 0, 29]).toNow(true); // 4 年 to() moment().to(Moment|String|Number|Date|Array); moment().to(Moment|String|Number|Date|Array, Boolean);

可能想要显示 moment 与现在以外的时间的相对时间。 在这种情况下,可以使用 moment#to。

var a = moment([2007, 0, 28]); var b = moment([2007, 0, 29]); a.to(b) // "1 天内"

第一个参数是可以传给 moment() 的任何值或实际的 Moment。

var a = moment([2007, 0, 28]); var b = moment([2007, 0, 29]); a.to(b); // "1 天内" a.to([2007, 0, 29]); // "1 天内" a.to(new Date(2007, 0, 29)); // "1 天内" a.to("2007-01-29"); // "1 天内"

与 moment#toNow 一样,将 true 用作第二个参数会返回不带后缀的值。 无论何时需要有可读的时间长度,这都非常有用。

var start = moment([2007, 0, 5]); var end = moment([2007, 0, 10]); end.to(start); // "5 天前" end.to(start, true); // "5 天"

从 2.10.3 版本开始,如果任一端点无效,则结果为本地化的无效日期字符串。

valueOf() moment().valueOf(); +moment();

moment#valueOf 简单地输出自 Unix 纪元以来的毫秒数,就像 Date#valueOf 一样。

moment(1318874398806).valueOf(); // 1318874398806 +moment(1318874398806); // 1318874398806

要从 Moment 获取 Unix 时间戳(自该纪元以来的秒数),则使用 moment#unix。

unix() moment().unix();

moment#unix 输出 Unix 时间戳(自 Unix 纪元以来的秒数)

moment(1318874398806).unix(); // 1318874398

此值的下限为最接近的秒数,且不包括毫秒部分。

daysInMonth() moment().daysInMonth();

获取当月的天数。

moment("2012-02", "YYYY-MM").daysInMonth() // 29 moment("2012-01", "YYYY-MM").daysInMonth() // 31 toDate() moment().toDate();

要获取 Moment.js 封装的原生 Date 对象的副本,则使用 moment#toDate。

这将会返回该 moment 使用的 Date 的副本,因此对该 Date 的任何更改都不会导致 moment 发生变化。 如果要更改 moment 的 Date,则参阅 moment#manipulate 或 moment#set。

moment#native 已由 moment#toDate 取代,并已弃用于 1.6.0。

moment中文文档



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3