Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript momentjs覆盖今天的默认全局日期_Javascript_Momentjs - Fatal编程技术网

Javascript momentjs覆盖今天的默认全局日期

Javascript momentjs覆盖今天的默认全局日期,javascript,momentjs,Javascript,Momentjs,我想为momentjs设置一个默认时间。例如,默认行为是: moment().format('YYYY-MM-DD') // returns current date 我想做的是将当前日期改写为其他日期,即2017-03-01,因此每当我这样做时 moment().format('YYYY-MM-DD') >> "2017-07-31" 当调用构造函数而不带参数时(从技术上讲,它调用newdate(Date.now()),但结果是相同的),将自动初始化。你必须通过一些东西才能得到

我想为momentjs设置一个默认时间。例如,默认行为是:

moment().format('YYYY-MM-DD') // returns current date
我想做的是将当前日期改写为其他日期,即2017-03-01,因此每当我这样做时

moment().format('YYYY-MM-DD')
>> "2017-07-31"
当调用构造函数而不带参数时(从技术上讲,它调用
newdate(Date.now())
,但结果是相同的),将自动初始化。你必须通过一些东西才能得到一个具体的日期

当然,您可以更改Moment.js库的本地副本,但不建议这样做。您必须使其与库的更高版本保持同步。如果让
moment()
返回除当前日期以外的任何内容,则会让那些回头看代码的人想知道发生了什么


经过进一步研究,似乎Moment.js确实允许您覆盖
Moment.now()
的实现,该实现告诉库中的其他部分现在是什么时间。看见这里有一个例子:

moment.now = function () {
    return +new Date();
}
可根据您的需要轻松更改:

moment.now = function () {
    return +new Date(2017, 2, 1); // March 1st, 2017
}
出于上面第二段给出的原因,我强烈建议谨慎使用这种技术(如果有的话)。

当调用构造函数而不带参数时(从技术上讲,它调用
新日期(Date.now())
,但结果是一样的)。你必须通过一些东西才能得到一个具体的日期

当然,您可以更改Moment.js库的本地副本,但不建议这样做。您必须使其与库的更高版本保持同步。如果让
moment()
返回除当前日期以外的任何内容,则会让那些回头看代码的人想知道发生了什么


经过进一步研究,似乎Moment.js确实允许您覆盖
Moment.now()
的实现,该实现告诉库中的其他部分现在是什么时间。看见这里有一个例子:

moment.now = function () {
    return +new Date();
}
可根据您的需要轻松更改:

moment.now = function () {
    return +new Date(2017, 2, 1); // March 1st, 2017
}

出于上面第二段给出的原因,我强烈建议谨慎使用此技巧。

为什么不将日期传递到
时刻(…
)?进行所需的更改会违反MomentJS文档定义的合同<代码>力矩()现在应该返回。改变这一点是引入难以追踪的bug的一种极好的方式。以这种风险为代价,这会给你带来什么好处?IMO,即使你想要的是可能的,我认为这是一个很坏的想法。能够及时地设置日期,这是必要的,以防止在多个地方查找代码。你不能。当在没有参数的情况下调用构造函数时,函数将初始化自身。你必须传递一些东西才能获得一个特定的日期。然后你可以更好地使用一个方法来获取当前日期,而不是更改momentjs的行为。仍然需要在多个位置更新代码,我真的在寻找一些东西来覆盖默认行为(快速和肮脏是可以的,因为我只需要一个案例,而且只会使用大约一到两周)为什么不将日期传递到
moment(…
)?进行所需的更改会破坏MomentJS文档定义的合同。
moment()现在应该返回。改变这是一个引入一个难以追踪的bug的奇妙方法。这会给你带来什么样的风险?IMO,即使你想要的是可能的,我认为这是一个很坏的想法。能够及时地设置一个日期,这是必要的,以防止在多个地方查找代码。你不能。当构造函数在没有参数的情况下被调用时,你需要初始化它自己。你必须传递一些东西来获得一个特定的日期。这样你就可以更好地使用一个方法来获取当前日期,而不是改变momentjs的行为。仍然需要在多个地方更新代码,我真的在寻找一些东西来覆盖默认的behavior(快速和肮脏是好的,因为我需要一个单一的情况下,它将只用于约一个星期或两个)