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

时间:2015-07-13 01:45:11

标签: javascript momentjs

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

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

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

用户不会理解" l"意思是,所以在占位符文本中使用这个值几乎没有意义。

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

编辑:

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

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

我想要一个这样的功能: getFormat(" l") - > " mm / dd / yyyy",或美国语言环境的等效语言。 getFormat(" l") - > " dd / mm / yyyy"或等效的AU语言环境。

想要格式化给定日期,或者解析给定日期 - 我只想确定它的用户友好格式,给定一个任意的moment.js格式,特别是,为' l'。

2 个答案:

答案 0 :(得分:4)

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

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

moment().locale(lang).localeData()._longDateFormat['L']

语言的行为略有不同,具体取决于您使用的是哪种浏览器,所以不知道这有多可靠。

答案 1 :(得分:4)

跟随Adam R的回答:

现在似乎已经曝光了:

localeData.longDateFormat(dateFormat);

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

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

moment.localeData()

获取当前使用的区域设置数据