Jes*_*erA 6 javascript date momentjs
在我的应用程序中,我想根据用户的语言环境设置日期格式。如果用户修改了日期,我希望能够将其解析回 javascript Date 对象。
我想知道是否可以使用 javascript 从本地格式化的字符串中解析日期?
请考虑以下片段:
new Date(2016, 0, 1).toLocaleDateString('ar');
>>"??/??/????"
Run Code Online (Sandbox Code Playgroud)
如果我想将该字符串解析回有效日期,我将如何处理?
以下将不起作用:
new Date(new Date(2016, 0, 1).toLocaleDateString('ar'));
>>Invalid Date
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用momentjs,但无法在那里找到工作方式。
//change global locale
moment.locale('ar-sa');
moment().format('L');
>>"??/??/????"
moment(new moment().format('L'))._d;
>>Invalid Date
Run Code Online (Sandbox Code Playgroud)
或者有没有其他/更好的方式来思考这样的问题?
由于 JS Date 的工作方式,确实没有什么好方法可以仅使用 Date 对象来完成此操作。它没有一致的解析行为。
\n\n时刻会为你做到这一点,而且你实际上已经非常接近了。我不确定您为什么要立即调用新关键字。那是没有必要的。要使用 Moment 获取阿拉伯语日期:
\n\nmoment.locale(\'ar-sa\'); \nmoment().format(\'L\')\n"\xd9\xa1\xd9\xa5/\xd9\xa0\xd9\xa6/\xd9\xa2\xd9\xa0\xd9\xa1\xd9\xa6"\nRun Code Online (Sandbox Code Playgroud)\n\n将该日期解析回某个时刻:
\n\nmoment("\xd9\xa1\xd9\xa5/\xd9\xa0\xd9\xa6/\xd9\xa2\xd9\xa0\xd9\xa1\xd9\xa6", \'L\').format()\n"\xd9\xa2\xd9\xa0\xd9\xa1\xd9\xa6-\xd9\xa0\xd9\xa6-\xd9\xa1\xd9\xa5T\xd9\xa0\xd9\xa0:\xd9\xa0\xd9\xa0:\xd9\xa0\xd9\xa0-\xd9\xa0\xd9\xa5:\xd9\xa0\xd9\xa0"\nRun Code Online (Sandbox Code Playgroud)\n\n或者,如果您需要英文字符来与 API 交互:
\n\nmoment("\xd9\xa1\xd9\xa5/\xd9\xa0\xd9\xa6/\xd9\xa2\xd9\xa0\xd9\xa1\xd9\xa6", \'L\').locale(\'en\').format()\n"2016-06-15T00:00:00-05:00"\nRun Code Online (Sandbox Code Playgroud)\n\n请注意,当您使用“L”时,您正在告诉您正在专门寻找日期格式“DD/MM/YYYY”。作为参考,阿拉伯语沙特阿拉伯本地化日期格式如下:
\n\n LT : \'HH:mm\',\n LTS : \'HH:mm:ss\',\n L : \'DD/MM/YYYY\',\n LL : \'D MMMM YYYY\',\n LLL : \'D MMMM YYYY HH:mm\',\n LLLL : \'dddd D MMMM YYYY HH:mm\'\nRun Code Online (Sandbox Code Playgroud)\n\n因此,无论您使用什么格式作为 moment 的第二个参数,都将是 moment 正在寻找的格式。不同的区域设置有不同的格式,因此在区域设置之间进行更改时需要小心。
\n\n如果需要返回日期对象,可以执行以下操作:
\n\nmoment("\xd9\xa1\xd9\xa5/\xd9\xa0\xd9\xa6/\xd9\xa2\xd9\xa0\xd9\xa1\xd9\xa6", \'L\').toDate()\nRun Code Online (Sandbox Code Playgroud)\n\n但我必须警告您,这不是 Moment.js 中的最佳实践,除非您有需要使用日期的第三方 API。Moment 是一个完整的 API(比 JS Date 更好),因此您需要编写的任何与日期和时间操作相关的代码最好在 Moment 生态系统中完成。
\n| 归档时间: |
|
| 查看次数: |
2569 次 |
| 最近记录: |