Moment 被设计为在浏览器和 Node.js 中都能工作。
所有的代码都应该在这两种环境中都可以工作,并且所有的单元测试都应该在这两种环境中运行。
CI 系统当前使用以下的浏览器:Windows XP 上的 Chrome,Windows 7 上的 IE 8、9 和 10,Windows 10 上的 IE 11,Linux 上最新的 Firefox,OSX 10.8 和 10.11 上最新的 Safari。
如果您想尝试以下的示例代码,则只需打开浏览器的控制台并输入即可。
npm install moment
- var moment = require('moment');
- moment().format();
注意:在 2.4.0 中,全局的 moment 对象已被废弃。 它将会在下一个主版本中被删除。
- <script src="moment.js"></script>
- <script>
- moment().format();
- </script>
Moment.js 在 cdnjs.com 和 jsDelivr 上可用。
bower install --save moment
值得注意的文件是 moment.js、locale/*.js 和 min/moment-with-locales.js。
如果你打算将 moment 与 Require.js 结合使用,则强烈建议你阅读此内容。 另外,请升级到 2.14.0 或更高版本以获得最佳体验。
首先,你可能需要通过 bower 或 node_modules 或其他方式将 moment.js 以及语言环境目录放置在基层文件夹中来获取 moment。 然后,你可以使用 adapt-pkg-main 之类的工具、或者手动使用包配置。
- requirejs.config({
- packages: [{
- name: 'moment',
- // 此位置是相对于 baseUrl 的。
- // 选择 bower_components 还是 node_modules 取决于具体的安装方式。
- location: '[bower_components|node_modules]/moment'
- main: 'moment'
- }]
- });
通过上述的设置,你可以使用 moment 引入核心模块、使用 moment/locale/de 引入 de 语言环境。
- // 只需要核心模块。
- define(['moment'], function (moment) {
- console.log(moment().format('LLLL')); // 'Friday, June 24, 2016 1:42 AM'
- });
-
- // 具有单一语言环境的核心模块。
- define(['moment', 'moment/locale/de'], function (moment) {
- moment.locale('de');
- console.log(moment().format('LLLL')); // 'Freitag, 24. Juni 2016 01:42'
- });
-
- // 具有所有语言环境的核心模块。
- define(['moment/min/moment-with-locales'], function (moment) {
- moment.locale('de');
- console.log(moment().format('LLLL')); // 'Freitag, 24. Juni 2016 01:42'
- });
-
- // 异步加载语言环境。
- define(['require', 'moment'], function(require, moment) {
- // 检测到语言环境之后,在某个模块内部。
- // 这是在模块加载时间之前不知道语言环境的情况。
- require(['moment/locale/de'], function(localeModule) {
- // 此处已加载语言环境,但尚未使用。
- console.log(moment().format('LLLL')); // 'Friday, June 24, 2016 1:42 AM'
-
- moment.locale('de');
- // 已经正确地设置了语言环境之后使用 moment。
- console.log(moment().format('LLLL')); // 'Freitag, 24. Juni 2016 01:42'
- })
- });


- const getCommentTime = (createTime) => {
- const interval = (serverTime - createTime) / 1000
- if (interval < 60) {
- return '刚刚'
- } else if (interval < 60 * 60) {
- let tempTime = Math.floor(interval / 60)
- return `${tempTime}分钟前`
- } else if (interval < 60 * 60 * 24) {
- let tempTime = Math.floor(interval / (60 * 60))
- return `${tempTime}小时前`
- } else if (interval < 60 * 60 * 24 * 7) {
- let tempTime = Math.floor(interval / (60 * 60 * 24))
- return `${tempTime}天前`
- } else if (interval < 60 * 60 * 24 * 365) {
- return moment(createTime - 0).format('MM-DD')
- } else {
- return moment(createTime - 0).format('YYYY-MM-DD')
- }
- }