我正在尝试使用MomentJS来支持我的应用程序中的日期处理。但是,我遇到了日期操作问题。
文件按以下顺序加载:
<script src="/javascripts/modules/moment/moment.min.js"></script>
<script src="/javascripts/modules/moment/moment-timezone.min.js"></script>
<script src="/javascripts/modules/moment/moment-timezone-data.js"></script>
<script src="/javascripts/modules/moment/moment-with-langs.min.js"></script>
现在在我的JS代码的某些部分,我将语言时刻改为FR或PT。
moment.lang('fr');
两种语言都将日期验证为"DD/MM/YYYY"
而非美国模式。所以我期待一下
验证国家日期模式通过后的日期。
然后12/10/2014
必须是:天(12),月(09),年(2014),但它总是返回美国模式而不是正确模式。
我将日期属性设为:
console.log("DAY: " + moment(textDate).date());
console.log("MONTH: " + moment(textDate).month());
console.log("YEAR: " + moment(textDate).year());
其中textDate
是我从文字输入中获取的日期。
##编辑##
我知道我可以将模式传递给Moment。即:
moment(textDate, 'DD/MM/YYYY');
对于我的申请,我使用的是这样的:
moment(textDate, '<%=lingua.general.time.pDate%>');
然而,它假设自动工作,不是吗?当然,如果您已经有必要的语言包。所以我之前提到过的方法应该是Works,无论如何。
答案 0 :(得分:1)
如果你没有传递任何格式化参数,那么会让你的浏览器进行解析(除了完整的ISO时间戳)。
要说明进行解析的时间,并使用与该语言关联的本地化短日期格式,请传递L
作为格式字符串:
moment(textDate, 'L')
请参阅文档:
此外,与您的问题无关,但与langs有关的时刻已经包含了moment.js的副本,因此您不需要这两个脚本。