将值传递给Date Object时出现问题

时间:2016-05-31 13:06:54

标签: date datetime dojo

我想以MM / yyyy格式显示日期。我使用以下代码更改格式:

 var inputDate = new Date(data);

            var date = dojo.date.locale.format(inputDate, {datePattern: "MM/yyyy", selector: "date"}); 

数据包含输入日期。例如,在浏览器中设置德语区域设置时,输入值如下:01.03.2016 05:30

创建具有此值的日期对象时,虽然在浏览器中设置了美国语言环境时有效,但会提供无效日期。请指导修复此问题。

1 个答案:

答案 0 :(得分:1)

您可以使用locale.parse将本地化日期字符串转换为日期对象,然后将日期对象转换为所需的格式化日期。

见这个小例子:



var browserLocale = 'de',
    data = '01.03.2016 05:30';


require(["dojo/i18n", "dojo/date/locale"], function(i18n, locale){
    require([i18n.getL10nName("dojo/cldr", "gregorian", browserLocale)], function() {
        var dateObject = locale.parse(data, {formatLength: 'short', locale: 'de'});
        alert(locale.format(dateObject, {datePattern: "MM/yyyy", selector: "date"}));
    });
});

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
&#13;
&#13;
&#13;