2013-07-02 3 views
3

mootools의 datepicker를 사용하고 있으며 사용자 위치에 따라 지역화 된 형식을 사용하려고합니다.MooTools 날짜 선택기 기본 형식

08/15/13 //American 
15.08.13 //English 
문서는 기본적 format: (*string*, defaults to the default localized format)

에 의해 변경 그러나이 코드를 사용해야한다고

: 예를 들어

window.addEvent('domready', function(){ 
    new Picker.Date($$('input'), { 
     timePicker: true, 
     positionOffset: {x: 5, y: 0}, 
     pickerClass: 'datepicker_bootstrap', 
     useFadeInOut: !Browser.ie 
    }); 
}); 

그것은 항상 미국 형식 08/15/13를 사용하는을 (월 첫째).

나는 윈도우 7 Date and Time

+3

날짜 선택을

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... 

:이 Mootools의 Locale.list() 브라우저/I 위에서 게시 자바 스크립트 답을 비교하는 언어를 지정합니다 arian)은 mootools-more의'Locale'을 사용합니다. 'Locale.use()'를 시도하고 문서 http://mootools.net/docs/more/Locale/Locale –

+1

을 읽어 주셔서 감사합니다. 포인터를 주셔서 감사합니다 ... 제가 인정해야하지만, 나는 이것이 디폴트를 의미한다고 생각했습니다. 상자? 아니? 나는 놀아서 놀고,'Locale.use()'를 사용하여'Picker'를위한 문자열로 출력하려고합니다. –

+0

아직도 –

답변

1

내가 DatePicker에서 생각하지 않습니다 내 시간대 설정을 변경하여 테스트입니다 것은 그 "상자 밖으로"한다. 클라이언트 측 스크립트에서 사용자 위치 또는 언어 코드를 얻을 수있는 방수 방법이 있는지 확신하지 못합니다.

var language = window.navigator.userLanguage || window.navigator.language; 
console.log(language); 

를 동일한 시스템에, 파이어 폭스에서 크롬 "sv""en-GB"을 가지고 :

난 그냥 시도했다.

나는 PHP/HTTP 요청 헤더를 사용하여 거의 같은 결과를 얻었습니다. 정보를 서버 측에서 가져 오는 것에 대한 생각. This 질문 점 최선의 방법으로 HTTP_ACCEPT_LANGUAGE :하지만,

--- 
name: Locale.en-US.DatePicker 
description: English Language File for DatePicker 
authors: Arian Stolwijk 
requires: [More/Locale] 
provides: Locale.en-US.DatePicker 
... 

이 나에게이 설정되어 있는지 느낌을 준다 : 당신이 DatePicker.js를 보면

$_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 

첫 번째 줄에있는 파일 en-US에. 수동으로 설정해도 작동합니다.

제 제안은 Dimitar 님의 제안을 따르고 Locale.use()를 사용하여 수동으로 설정하는 것입니다. DatePicker를 호출하기 전에 예를 들어 Locale.use('sv-SE');을 추가하면 yyyy-mm-dd 형식으로 날짜가 표시됩니다.

클라이언트 측 언어를 읽는 스크립트를 사용하여 역동적으로 만들려고했습니다. 작동하지만 테스트되지 않았습니다. (만약 ... 당신이 생각한다면 당신이 미세 조정을 할 수있는 유용한 Fiddle here

+0

Locale.use()에서 사용할 수있는 클라이언트 측 위치를 찾는 방법에 흥미가있어, [이 질문] (http://stackoverflow.com/questions/17680413/get-visitors-language -country-code-with-javascript-client-side)에 대한 최신 솔루션이 있습니다. – Sergio