使用MomentJS,如有必要,我可以使用.locale
(或旧版本中的.lang
)在特定时刻(而不是全局)设置区域设置。我怎样才能解析一个字符串使用全球之外的特定地区?由于moment
函数本身就是我们用来解析的东西,而且似乎没有完全解析的.set
变体?解析日期字符串在特定区域设置(不是时区!)
例如为:
// Assume the default locale is 'en' (just in case, I'll set it for the snippet)
moment.locale('en');
// I have this string that's in the French locale
var str = "30 Avril 2015";
// Parsing it fails
var m = moment(str, "DD MMMM YYYY");
snippet.log(m.format("YYYY-MM-DD")); // "Invalid Date"
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment-with-locales.js"></script>
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
我发布了它,因为它可能对别人有用吗?我想我得到了你想要的东西,你想要某种“范围”,例如你可以在法国日期工作,而不会搞乱全球语言环境。 – adeneo 2015-04-03 15:35:20
@ adeneo:同意。是的,这就是我想要的。我会分开发布。 – 2015-04-03 15:37:32
你会认为有办法做到这一点,但我不记得曾经见过这样的事情吗?文档相当广泛,我没有阅读所有内容,但是我不能发现任何可以这样工作的东西,而且您可能看起来很好。有人可能会延长时间对实例或类似的东西有'set()'方法吗? – adeneo 2015-04-03 15:40:11