js时间转化为几天前,几小时前,几分钟前
使用环境
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。
如果您想尝试以下的示例代码,则只需打开浏览器的控制台并输入即可。
Node.js
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
bower install --save moment
值得注意的文件是 moment.js
、locale/*.js
和 min/moment-with-locales.js
。
Require.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')
}
}