moment.min.js
Moment.js is an awesome JavaScript library that helps you manage dates, in the browser and in Node.js as well.
Moment.js是一个很棒JavaScript库,可帮助您在浏览器和Node.js中管理日期。
This article aims to explain the basics and the most common usages of this library.
本文旨在解释该库的基础知识和最常用的用法。
You can include it directly in your page using a script tag, from unpkg.com:
您可以使用脚本标签直接从unpkg.com将其包含在页面中:
<script src="https://unpkg.com/moment" />
or using npm:
或使用npm :
npm install moment
If you install using npm you need to import the package (using ES Modules):
如果使用npm安装,则需要导入软件包(使用ES Modules ):
import moment from 'moment'
or require it (using CommonJS):
或要求它(使用CommonJS ):
const moment = require('moment')
const date = moment()
A moment object can be initialized with a date by passing it a string:
可以通过将一个字符串对象传递给一个日期来对其进行初始化:
const date = moment(string)
it accepts any string, parsed according to (in order):
它接受根据(按顺序)解析的任何字符串:
ISO 8601 is definitely the most convenient. Here’s a format reference:
ISO 8601绝对是最方便的。 这是格式参考:
Format | Meaning | Example |
---|---|---|
YYYY | 4-digits Year | 2018 |
YY | 2-digits Year | 18 |
M | 2-digits Month number, omits leading 0 | 7 |
MM | 2-digits Month number | 07 |
MMM | 3-letters Month name | Jul |
MMMM | Full Month name | July |
dddd | Full day name | Sunday |
gggg | 4-digits Week year | 2018 |
gg | 2-digits Week year | 18 |
w | Week of the year without leading zero | 18 |
ww | Week of the year with leading zero | 18 |
e | Day of the week, starts at 0 | 4 |
D | 2-digits day number, omits leading 0 | 9 |
DD | 2-digits day number | 09 |
Do | Day number with ordinal | 9th |
T | Indicates the start of the time part | |
HH | 2-digits hours (24 hour time) from 0 to 23 | 22 |
H | 2-digits hours (24 hour time) from 0 to 23 without leading 0 | 22 |
kk | 2-digits hours (24 hour time) from 1 to 24 | 23 |
k | 2-digits hours (24 hour time) from 1 to 24 without leading 0 | 23 |
a/A | am or pm | pm |
hh | 2-digits hours (12 hour time) | 11 |
mm | 2-digits minutes | 22 |
ss | 2-digits seconds | 40 |
s | 2-digits seconds without leading zero | 40 |
S | 1-digits milliseconds | 1 |
SS | 2-digits milliseconds | 12 |
SSS | 3-digits milliseconds | 123 |
Z | The timezone | +02:00 |
x | UNIX timestamp in milliseconds | 1410432140575 |
格式 | 含义 | 例 |
---|---|---|
YYYY | 4位数字年份 | 2018年 |
YY | 两位数年份 | 18 |
中号 | 2位数字月份号,省略前导0 | 7 |
MM | 2位数字月份号 | 07 |
MMM | 3个字母的月份名称 | 七月 |
MMMM | 全月名称 | 七月 |
dddd | 全日名称 | 星期日 |
gggg | 4位数字的周年 | 2018年 |
gg | 2位数字的星期年 | 18 |
w | 一年中的星期,不带零 | 18 |
w | 一年中的前零周 | 18 |
Ë | 星期几,从0开始 | 4 |
d | 2位日数字,省略前导0 | 9 |
DD | 2位数的日号 | 09 |
做 | 带序号的天数 | 第九名 |
Ť | 指示时间部分的开始 | |
H | 2位数小时(24小时制),从0到23 | 22 |
H | 2位数小时(24小时制),从0到23,前导0 | 22 |
kk | 2位数小时(24小时制),从1到24 | 23 |
ķ | 2位数小时(24小时制),从1到24,不加0 | 23 |
A / A | am 或pm | 下午 |
h | 2位数小时(12小时制) | 11 |
毫米 | 2位数字分钟 | 22 |
ss | 2位数秒 | 40 |
s | 2位秒,不带前导零 | 40 |
小号 | 1位数毫秒 | 1个 |
SS | 2位毫秒 | 12 |
SSS | 3位数毫秒 | 123 |
ž | 时区 | +02:00 |
X | UNIX时间戳(以毫秒为单位) | 1410432140575 |
When you want to output the content of a plain JavaScript Date object, you have little options to determine the formatting. All you can do is to use the built-in methods, and compose the date as you want using them.
当您要输出纯JavaScript Date对象的内容时,几乎没有选择来确定格式。 您所能做的就是使用内置方法,并根据需要编写日期。
Moment offers a handy way to format the date according to your needs, using the format()
method:
Moment提供了一种方便的方式,可以使用format()
方法根据您的需要格式化日期:
date.format(string)
The string format accepts the same formats I described in the “Parse a date” section above.
字符串格式接受与我上面“解析日期”一节中描述的格式相同的格式。
Example:
例:
moment().format("YYYY Do MM")
Moment provides some constants you can use instead of writing your own format:
Moment提供了一些常量,您可以使用它们来代替编写自己的格式:
Constant | Format | Example |
---|---|---|
moment.HTML5_FMT.DATETIME_LOCAL | YYYY-MM-DDTHH:mm | 2017-12-14T16:34 |
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS | YYYY-MM-DDTHH:mm:ss | 2017-12-14T16:34:10 |
moment.HTML5_FMT.DATETIME_LOCAL_MS | YYYY-MM-DDTHH:mm:ss.SSS | 2017-12-14T16:34:10.234 |
moment.HTML5_FMT.DATE | YYYY-MM-DD | 2017-12-14 |
moment.HTML5_FMT.TIME | HH:mm | 16:34 |
moment.HTML5_FMT.TIME_SECONDS | HH:mm:ss | 16:34:10 |
moment.HTML5_FMT.TIME_MS | HH:mm:ss.SSS | 16:34:10.234 |
moment.HTML5_FMT.WEEK | YYYY-[W]WW | 2017-W50 |
moment.HTML5_FMT.MONTH | YYYY-MM | 2017-12 |
不变 | 格式 | 例 |
---|---|---|
moment.HTML5_FMT.DATETIME_LOCAL | YYYY-MM-DDTHH:mm | 2017-12-14T16:34 |
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS | YYYY-MM-DDTHH:mm:ss | 2017-12-14T16:34:10 |
moment.HTML5_FMT.DATETIME_LOCAL_MS | YYYY-MM-DDTHH:mm:ss.SSS | 2017-12-14T16:34:10.234 |
moment.HTML5_FMT.DATE | YYYY-MM-DD | 2017-12-14 |
moment.HTML5_FMT.TIME | 高度:毫米 | 16:34 |
moment.HTML5_FMT.TIME_SECONDS | HH:mm:ss | 16:34:10 |
moment.HTML5_FMT.TIME_MS | HH:mm:ss.SSS | 16:34:10.234 |
moment.HTML5_FMT.WEEK | YYYY- [W] WW | 2017-W50 |
moment.HTML5_FMT.MONTH | YYYY-MM | 2017-12 |
Any date can be checked for validity using the isValid()
method:
可以使用isValid()
方法检查任何日期的有效性:
moment('2018-13-23').isValid() //false
moment('2018-11-23').isValid() //true
Use fromNow()
. Strings are localized:
使用fromNow()
。 字符串已本地化:
moment('2016-11-23').fromNow() //2 years ago
moment('2018-05-23').fromNow() //a month ago
moment('2018-11-23').fromNow() //in 5 months
if you pass true
to fromNow(), it just shows the difference, without reference to future/past.
如果将true
传递给fromNow(),它将仅显示差异,而不会引用future / past。
moment('2016-11-23').fromNow(true) //2 years
moment('2018-05-23').fromNow(true) //a month
moment('2018-11-23').fromNow(true) //5 months
You can add or subtract any amount of time to a date:
您可以在日期中增加或减少任何时间:
moment('2016-11-23').add(1, 'years')
moment('2016-11-23').subtract(1, 'years')
You can use those values:
您可以使用这些值:
years
years
quarters
quarters
months
months
weeks
weeks
days
days
hours
hours
minutes
minutes
seconds
seconds
milliseconds
milliseconds
moment.min.js