使用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