使用moment.js,如何显示用户的当前日期格式?

Ara*_*ion 6 javascript momentjs

给定一个文本字段,我想要一个合适的占位符.典型的占位符将是:"mm/dd/yyyy".

但是,我想使用moment.js使用区域设置感知日期.

这意味着我将指定"l"作为moment.js日期格式,如何确定moment.js在这种情况下将使用的日期格式?

用户不会理解"l"的含义,因此在占位符文本中使用此值几乎没有意义.

具体来说,我希望能够访问像moment的内部"defaultLongDateFormat"之类的东西.(虽然这只是一个默认值 - moment.js可能会更新它,或者在运行时为区域设置感知日期格式设置其他一些映射 - 我想访问该映射.)

编辑:

有多个downvotes(谁没有解释为什么他们正在贬低它).

我认为这是因为他们不"理解这个问题,所以这里有一些例子:

我想要一个函数:getFormat("l") - >"mm/dd/yyyy",或美国语言环境的等效函数.AU语言环境的getFormat("l") - >"dd/mm/yyyy"或等价物.

希望格式化给定的日期,或分析一个给定的日期-我只是想确定这是给予arbitruary moment.js格式的用户友好的格式,具体而言,"L".

小智 5

我不认为它暴露得很好,但是如果浏览器的语言配置正确,你可以这样做:

var lang = navigator.languages ? navigator.languages : navigator.language;

moment().locale(lang).localeData()._longDateFormat['L']
Run Code Online (Sandbox Code Playgroud)

根据您使用的浏览器,语言的行为略有不同,因此不知道这有多可靠。


fab*_*anm 5

跟进 Adam R 的回答:

现在好像已经曝光了:

localeData.longDateFormat(dateFormat);

返回缩写日期时间格式 LT、L、LL 等的完整格式

(来源: http: //momentjs.com/docs/

获取当前使用的语言环境数据moment.localeData()