moment.js格式化时间常用方法

创建Moment对象后,有时需要对其进行一些加减等操作,Moment中提供了一些方法来完成这些操作。

Moment使用了连续接口模式,也叫做方法链。这让你可以像这样像下面这样进行方法调用:

1. 加法(Add)

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

对原moment进行时间增加操作。

这是一个优雅而健壮的方法,使你可以对已经存在的moment进行时间增加操作。通过一个时间单位和增加量,可以实现对时间的增加操作。

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

也可以通过简写形式实现这些操作:

moment().add(7, 'd');
```对一个时间增加多个时间单位时,可以通过一个对象实现:

moment().add(7, ‘days’).add(1, ‘months’); // 方法链实现
moment().add({days:7,months:1}); // 对象字面量实现


你可以通过任意级别的时间参数,实现时间的增加操作:

moment().add(1000000, ‘milliseconds’); // 100万毫秒
moment().add(360, ‘days’); // 30天


**对月和年的特殊考虑**

当增加月后,如果目标月的天数超过出最大值,将变为目标月的最后一天:

moment([2010, 0, 31]); // 1月31
moment([2010, 0, 31]).add(1, ‘months’); // 2月28


var m = moment(new Date(2011, 2, 12, 5, 0, 0)); // 美国夏令时前的一天
m.hours(); // 5
m.add(24, ‘hours’).hours(); // 6


当为夏令时增加小时、分钟、秒或毫钞时,如你想增加一个明确的小时数,返回值会返回一个不同的小时数:

var m = moment(new Date(2011, 2, 12, 5, 0, 0)); // 美国夏令时前的一天
m.hours(); // 5
m.add(24, ‘hours’).hours(); // 6

2. 减法(Subtract)

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

对原moment进行时间减少操作。

减少时间的方法与增加时间的方法moment().add()相似,只是把增加时间变成了减少时间:

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

3. 开始时间 (Start of Time)

moment().startOf(String);

对原moment设置为某一时间的单位的起始时间。

moment().startOf('year');    // 设置为今年1月第一天的 12:00 am
moment().startOf('month');   // 设置为本月第一天的 12:00 am
moment().startOf('quarter');  // 设置为本季度第一个月第一天的 12:00 am
moment().startOf('week');    // 设置为本周第一天的 12:00 am
moment().startOf('isoWeek'); // 设置为ISO本周的第一天的 12:00 am
moment().startOf('day');     // 设置为今天的 12:00
moment().startOf('hour');    // 设置为当前时间的小时,0分0秒0毫秒
moment().startOf('minute');  // 设置为当前的时间的分钟,according
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);

对原moment设置为某一时间的单位的结束时间。

4. 结束时间 (End of Time)

moment().endOf(String);

moment().startOf()相同,只是将开始时间变成了结束时间:

moment().endOf("year"); // 设置为今年的 12-31 11:59:59.999 pm

5. 最大值(Maximum)

moment().max(Moment|String|Number|Date|Array);

将当前moment时间设置为和另一个moment时间相比较大值的一个,a.max(b)与a = moment.min(a, b)相同。

这是和moment.min相对的一方法:

var momentFromServer = moment(input);
var clampedMoment = momentFromServer.max();

通过moment.max方法与任意格式的有时间,与moment()取最大值:

moment().max(moment().add(1, 'd'));
moment().max("2013-04-20T20:00:00+0800");
moment().max("Jan 1 2001", "MMM D YYYY");
moment().max(new Date(2012, 1, 8));

6. 最小值(Minimum)

moment().min(Moment|String|Number|Date|Array);

将当前moment时间设置为和另一个moment时间相比较小值的一个,a.min(b)与a = moment.max(a, b)相同。

这是和moment.max相对的一方法:

moment().min("2013-04-20T20:00:00+0800");

通过moment.max方法,可以对moment进行各级别的时间设置:

var start  = moment().startOf('week');
var end    = moment().endOf('week');
var actual = moment().min(start).max(end);

7. 本地化(Local)

moment().local();

对原moment时间设置一个标志,对其内部使用Date#get*Date#set*代替Date#getUTC*Date#setUTC*

var a = moment.utc([2011, 0, 1, 8]);
a.hours(); // 8 UTC
a.local();
a.hours(); // 0 PST

UTC模式请参考:moment.utc()

8. UTC

moment().utc();

对原moment时间设置一个标志,对其内部使用Date#getUTC*Date#setUTC*代替Date#get*Date#set*

UTC模式请参考:moment.utc()

9. UTC 偏移量(UTC Offset)

moment().utcOffset();
moment().utcOffset(Number|String);

设置或获取一个以分为单位的UTC偏移量。

获取当前对象的UTC偏移量:

moment().utcOffset(); // (-240, -120, -60, 0, 60, 120, 240, etc.)

对当前时间设置一个明确的UTC 偏移分钟数。设置分钟数后,其本身并不会发生改变。如果你要使用某地的时区时间,要用moment-timezone进行设置:

moment().utcOffset(120);

当输入小于16且小于-16时,moment会理解为输入的是小时:

moment().utcOffset(8);  // 设置小时偏移量
moment().utcOffset(480);  // 设置分钟偏移量 (8 * 60)

也可以通过字符串形式进行设置:

moment().utcOffset("+08:00");
moment().utcOffset(8);
moment().utcOffset(480);

当通过字符串进行设置时,moment().utcOffset会首先匹配+00:00 +0000 -00:00 -0000,即使你输入了ISO 8601格式的字符串,moment也会将成变成这个UTC 偏移量。

输入的字符串要以+-的形式开头,如果不以这种形式开头会被解释为"+00:00"

moment().utcOffset("2013-03-07T07:00:00+08:00");

10. 时区偏移量(Timezone Offset)

moment().zone();
moment().zone(Number|String);

设置或获取一个以分钟为单位的时区偏移量。

moment().zone(); // (60, 120, 240, etc.)

当输入小于16且小于-16时,moment会理解为输入的是小时:

// 以下是同一种设置方式
moment().zone(480);
moment().zone(8);

也可以通过字符串形式进行设置:

moment().zone("-08:00");

当通过字符串进行设置时,moment().zone会首先匹配+00:00 +0000 -00:00 -0000,即使你输入了ISO 8601格式的字符串,moment也会将成变成这个时区偏移量。

moment().zone("2013-03-07T07:00:00-08:00");
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 moment.js 库在 Node.js 中获取时间的各种格式非常简单。首先需要在项目中安装 moment 库,然后在代码中引入它,如下所示: ``` const moment = require('moment'); ``` 然后,可以使用 moment() 函数获取当前时间,并使用各种格式函数对时间进行格式化,如下所示: ``` const now = moment(); console.log(now.format('YYYY-MM-DD HH:mm:ss')); // 输出当前时间的格式为 "2019-12-01 22:30:59" ``` 常用格式化函数有: - YYYY: 年 - MM: 月 - DD: 日 - HH: 时 - mm: 分 - ss: 秒 这些函数可以组合使用,以满足不同的格式需求。 如果你需要格式化一个特定的日期时间,可以在 moment() 函数中传入日期时间字符串或时间戳,如下所示 ``` const specificTime = moment('2022-11-25 12:10:15', 'YYYY-MM-DD HH:mm:ss'); console.log(specificTime.format('YYYY-MM-DD HH:mm:ss')); // 输出特定时间 "2022-11-25 12:10:15" ``` 总之, moment.js 是一个功能非常强大且易用的时间处理库, 是在 Node.js 中处理时间的首选库。 ### 回答2: Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,可以在服务器端运行 JavaScript 代码。moment.js 是一个常用JavaScript 日期处理库,可以帮助我们方便地获取、格式化和操作日期和时间。 在 Node.js 中使用 moment.js,我们需要先在项目中安装 moment.js 库。可以使用 npm(Node 包管理器)进行安装,命令如下: ``` npm install moment --save ``` 安装完成后,我们可以在代码中引入 moment 模块并使用它提供的函数来获取时间的各种格式。以下是几个常用的示例: 1. 获取当前时间的字符串格式: ```javascript const moment = require('moment'); const currentTime = moment().format('YYYY-MM-DD HH:mm:ss'); console.log(currentTime); ``` 2. 获取指定日期的字符串格式: ```javascript const moment = require('moment'); const date = moment('2022-12-31'); const dateString = date.format('YYYY年MM月DD日'); console.log(dateString); ``` 3. 获取当前时间的 Unix 时间戳: ```javascript const moment = require('moment'); const unixTimestamp = moment().valueOf(); console.log(unixTimestamp); ``` 4. 根据指定的时间格式解析字符串为日期对象: ```javascript const moment = require('moment'); const dateString = '2022年12月31日'; const date = moment(dateString, 'YYYY年MM月DD日'); console.log(date.format('YYYY-MM-DD')); ``` 这些只是 moment.js 提供的一小部分功能,还有很多其他的日期和时间处理函数可以使用。通过使用 moment.js,我们可以更轻松地处理和格式化日期和时间数据。 ### 回答3: node.js是一种用于构建高度可伸缩的网络应用程序的JavaScript运行时环境。moment.js是一个JavaScript日期处理库,可简化日期和时间的操作和格式化。 使用moment.js可以轻松获取和处理各种时间格式。 首先,通过在node.js脚本中引入moment.js库,我们可以使用其提供的各种函数和方法。例如,我们可以使用`moment()`函数来获取当前的日期和时间,如下所示: ```javascript const moment = require('moment'); const now = moment(); // 获取当前日期和时间 console.log(now); ``` 这会将当前的日期和时间以默认格式打印出来。moment.js还提供了各种格式选项,可以根据需要进行格式化。例如,我们可以使用`format()`方法来将日期和时间格式化为指定的字符串格式: ```javascript const formattedDateTime = now.format('YYYY-MM-DD HH:mm:ss'); console.log(formattedDateTime); ``` 上述代码将当前日期和时间格式化为"年-月-日 时:分:秒"的格式,并将其打印出来。 除了`format()`方法moment.js还提供了许多其他用于获取和处理各种时间格式的方法。例如,我们可以使用`year()`、`month()`、`date()`、`hour()`、`minute()`、`second()`等方法获取特定时间单位的值: ```javascript const year = now.year(); // 获取当前年份 const month = now.month() + 1; // 获取当前月份(需要额外加1,因为月份从0开始) const date = now.date(); // 获取当前日期 const hour = now.hour(); // 获取当前小时 const minute = now.minute(); // 获取当前分钟 const second = now.second(); // 获取当前秒数 console.log(`${year}-${month}-${date} ${hour}:${minute}:${second}`); ``` 通过这些方法,我们可以获取到某个特定时间单位的值,并根据需要进行进一步格式化和处理。 以上只是介绍了moment.js中的一些基本用法,它还有很多其他功能和方法可以帮助我们处理日期和时间。希望这些信息对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值