Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MooTools日期选择器默认格式_Javascript_Date_Datepicker_Timezone_Mootools - Fatal编程技术网

Javascript MooTools日期选择器默认格式

Javascript MooTools日期选择器默认格式,javascript,date,datepicker,timezone,mootools,Javascript,Date,Datepicker,Timezone,Mootools,我正在使用mootools的datepicker,并试图根据用户的位置将其本地化 例如: 08/15/13 //American 15.08.13 //English 文档说明默认情况下应更改格式:(*string*,默认为默认本地化格式) 但使用此代码: window.addEvent('domready', function(){ new Picker.Date($$('input'), { timePicker: true, positio

我正在使用mootools的datepicker,并试图根据用户的位置将其本地化

例如:

08/15/13 //American
15.08.13 //English
文档说明默认情况下应更改
格式:(*string*,默认为默认本地化格式)

但使用此代码:

    window.addEvent('domready', function(){
    new Picker.Date($$('input'), {
        timePicker: true,
        positionOffset: {x: 5, y: 0},
        pickerClass: 'datepicker_bootstrap',
        useFadeInOut: !Browser.ie
    });
});
它总是使用美式格式
08/15/13
(第一个月)


我正在通过更改windows 7中的时区设置来进行测试
日期和时间

我认为DatePicker不会“开箱即用”。我不确定是否有防水的方法可以在客户端脚本中获取用户位置或语言代码

我刚才试过:

var language = window.navigator.userLanguage || window.navigator.language;
console.log(language);
在同一台机器上,在Chrome中获得了
“sv”
,在Firefox中获得了
“en GB”

我使用php/HTTP请求头也得到了同样的结果。考虑从服务器端获取信息。问题点
HTTP\u接受语言作为最佳方式,但:

$_SERVER["HTTP_ACCEPT_LANGUAGE"] // gives me:
sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4 //in chrome
en-gb,en;q=0.5 //in firefox
如果查看DatePicker.js文件的第一行:

---
name: Locale.en-US.DatePicker
description: English Language File for DatePicker
authors: Arian Stolwijk
requires: [More/Locale]
provides: Locale.en-US.DatePicker
...
这给了我一种感觉,它注定会让我们失望。如果您手动设置它,它将工作

我的建议是遵循的建议,并使用Locale.use()手动设置它。如果添加例如
Locale.use('sv-SE')在调用DatePicker之前,您将以yyyy-mm-dd格式获取日期

我编写了一个脚本来阅读客户端语言,试图使其动态化。它可以工作,但没有经过测试。这将指定一种语言,比较Mootools
Locale.list()
和我在上面发布的浏览器/javascript答案:

var language = window.navigator.userLanguage || window.navigator.language;
console.log(language); //gives the results I wrote above (sv/en-GB resp. Chrome/FF)
var list = Locale.list().length;
for (var i = 0; i < list; i++) {
    if (Locale.list()[i] == language) { //check if it's a full match
        Locale.use(language);
    } else { 
// go for the first part of the "sv-SE" and find a match
// this is a compromise, it gets the right language but might miss the right country
        var langArray = language.split('-');
        var locArray = Locale.list()[i].split('-');
        for (var k = 0; k < list; k++) {
            if (langArray[0] == locArray[0]) {
                Locale.use(Locale.list()[i]);
            }
        }
    }
}
console.log(Locale.getCurrent().name); // gives sv-SE/en-GB resp. Chrome/FF
new Picker.Date($$('input'), { 
// etc...
var language=window.navigator.userLanguage | | window.navigator.language;
console.log(语言)//给出了我上面写的结果(sv/en GB和Chrome/FF)
var list=Locale.list().length;
对于(变量i=0;i
如果你认为它有用,你可以对它进行微调。。。

日期选择器(如果是arian的)使用mootools中的
区域设置
。请尝试
区域设置。使用()
,并阅读文档,感谢您的指针……尽管我必须承认,我认为默认值意味着它可以在开箱即用的情况下完成此操作?不?我很高兴尝试使用
区域设置。使用()
并将其作为字符串输出给
选择器
仍然没有找到解决此问题的可靠方法我的回答有用吗?我对一种在Locale.use()中可以使用的客户端位置查找方法很感兴趣,所以我问了这个问题,以防有一种现代的解决方案。