我知道如果我想使用它,我必须导入片刻插件。像这样:
import * as moment from "moment-timezone";
//here I can use moment.tr.names() etc.
但是,如果我想使用多个插件怎么办?我知道插件在瞬间导入时刻,添加其功能然后再次导出时刻。但如果这是正确的,我该如何使用多个插件?
一种选择是使用不同的名称导入它们,例如:
import * as momentJdate from "moment-jdateformatparser";
import * as momentTimezone from "moment-timezone";
或者我可以将它们合并到像这样的一个时刻对象中(使用deepExtend):
let moment = {};
deepExtend(moment, momentJdate, momentTimezone);
//here you should be able to use moment().toJDFString() and moment.tz.names()
但这些似乎都不是干净的代码。有更好的方法吗?
答案 0 :(得分:3)
什么对我有用,我认为是干净的 - 一个接一个地导入。例如:
moment = require('moment-business-days');
moment = require('moment-timezone');
moment().tz('America/New_York').businessAdd(1).startOf('day').add(7, 'hours')
这不是理想的,因为它是不透明的,如果不理解节点是如何工作的,你可能会认为第一个要求是没有意义的。但它干净而有效。
答案 1 :(得分:0)
// utils/date.js
import momentJava from "moment-jdateformatparser";
import * as momentJsTZUI from "moment-timezone";
import moment from "moment";
const momentAll = { ...moment, ...momentJsTZUI, ...momentJava };
export { momentAll };
// then in app.js
import { momentAll } from "./utils/date";
const { default: moment} = momentAll;
console.log(moment("2013-12-24 14:30").formatWithJDF("dd.MM.yyyy"))
console.log(moment("2014-06-01T12:00:00Z").tz('America/Los_Angeles').format('ha z'));
console.log(moment().format());