2017-11-20 24 views
11

मैं दिनांक पिकर के लिए ng-pick-datetime UI घटक का उपयोग कर रहा हूं। मैंने readonly मोड अक्षम कर दिया है, ताकि इनपुट कीबोर्ड के साथ टाइप करने के लिए सक्रिय हो।कोणीय 4 डेटपिकर लोकेल ठीक से काम नहीं कर रहा है

<owl-date-time name="client_birthday" #client_birthday="ngModel" 
    [placeHolder]="'DD.MM.YYYY'" 
    [locale]="ru" 
    [(ngModel)]="client.client_birthday" 
    [type]="'calendar'" 
    [dataType]="'string'" 
    [dateFormat]="'DD.MM.YYYY'" 
    [readonlyInput] ="false" 
    [autoClose] ="true" 
    [inputId]="'client_birthday'"             
></owl-date-time> 

मैं date-fns का उपयोग कर RU स्थान लागू करने का प्रयास:

ru: any; 
ruLocale = require('date-fns/locale/ru'); 
ngOnInit() {  
    this.ru = { 
     firstDayOfWeek: 1, 
     dayNames: [...], 
     dayNamesShort: [...], 
     monthNames: [...], 
     monthNamesShort: [...], 
     dateFns: this.ruLocale 
    }; 
} 

जब मैं dd.mm.yyyy प्रारूप के साथ इनपुट में टाइप करें, पिकर एक महीने और एक दिन के रूप महीने के रूप में दिन में आता है, और वर्ष है ठीक। इसलिए, यह पहचानने वाला एकमात्र प्रारूप mm.dd.yyyy है, जो us लोकेल लगता है। मेरी कैलेंडर भाषा अपेक्षित के रूप में बदल गई है, लेकिन क्या RU के लिए दिनांक प्रारूप को कॉन्फ़िगर करना भी संभव है?

मैं किसी भी मदद की सराहना करता हूं।

+0

क्या आपने डेट-एफएनएस भी इंस्टॉल किया है? –

+0

@ राजकुमारराथी, हाँ –

+0

https://github.com/DanielYKPan/date-time-picker#localization यह समस्या हल करता है – thakurinbox

उत्तर

2
इस के लिए

समान:

@NgModule({ 
    providers: [ 
    { provide: LOCALE_ID, useValue: "ru-ru"}, 
    //otherProviders... 
    ] 
}) 

इस How to set locale in DatePipe in Angular 2?

+1

किया है यदि आप 50 बिंदु के लिए जा रहे हैं, तो मैं '_pepecific_ LOCALE_ID प्रदान करने की अनुशंसा करते हैं, सुझाव देते हैं कि वे मॉडल का पालन करें और स्वयं को समायोजित करें ... –

+0

LOCALE_ID कोणीय कोर से निरंतर प्रदाता टोकन है। यह सही मूल्य है। – bryan60

+0

जो दुर्भाग्य से काम नहीं करता था। ऐसा लगता है कि पाइप के लिए केवल –

5

यह एनजी-पिकअप datetime के इनपुट बॉक्स पर टाइप करके आप क्या चाहते हैं जब इनपुट तारीख ऐसा करने में असमर्थ तेजी पर एक नजर है। मैं एनजी-पिक-डेटटाइम घटक के कार्यान्वयन के माध्यम से चला गया। जब कार्यान्वयन https://date-fns.org/v1.29.0/docs/parse का उपयोग कर यहाँ से टाइपिंग, दिए गए इनपुट तारीख वस्तु को बदलने picker.component.ts है/src/picker.component.ts लाइन-1177 विधि-parseToDate

/** 
    * Parse a object to Date object 
    * @param {any} val 
    * @return {Date} 
    * */ 
    private parseToDate(val: any): Date { 
     if (!val) { 
      return; 
     } 

     let parsedVal; 
     if (typeof val === 'string') { 
      parsedVal = parse(val, this.dateFormat, this.now); 
     } else { 
      parsedVal = val; 
     } 

     return isValid(parsedVal) ? parsedVal : null; 
    } 

https://github.com/DanielYKPan/date-time-picker इस्तेमाल किया गया है "तिथि -fns ":"^2.0.0-alpha.7g "पैकेज जेसन पर। तारीख को प्रारूप को पारित करने के लिए यह एक तर्क है।

parsedVal = parse(val, this.dateFormat, this.now); 

लेकिन नवीनतम तारीख-FNS के संस्करण: "^ 1.29.0", दिनांक स्वरूप पारित करने के लिए parmeter नहीं है। तो यह आपके प्रोजेक्ट पर भी विफल रहता है। कृपया https://date-fns.org/v1.29.0/docs/parse

parse(argument, [options]) 
+0

अच्छा बिंदु, धन्यवाद। शायद आप अन्य दिनांक पिकर प्लगइन का सुझाव दे सकते हैं जो दिनांक स्वरूपण का समर्थन करता है? –

+0

मैं आपको अपनी आवश्यकता के अनुरूप मिलान करने के लिए एनजी-पिक-डेटटाइम कोड संपादित करने और अपने समाधान पर इसका उपयोग करने का सुझाव दे रहा हूं। मैंने आपकी आवश्यकता के साथ किसी भी डेटपिकर मिलान का उपयोग नहीं किया है। https://github.com/kekeh/mydatepicker यह स्वरूपण के लिए समर्थन कर रहा है लेकिन इनपुट पर टाइप करते समय नहीं। अगर मेरा जवाब आपकी समस्या का समाधान करने में आपकी सहायता करता है तो कृपया मुझे वोट दें;)। –

संबंधित मुद्दे