Schlagwort-Archive: ionic 4

Ionic 4 App Name Sprachen

Damit der App Name auch in verschiedenen Sprachen angezeigt wird, muss dies in einem Ionic Project in der Datei config.xml eingetragen werden.

Dazu erfolgt der Eintrag zum Beispiel für Russisch.

 
 <resource-file src="resources/android/res/values-ru/string.xml" target="app/src/main/res/values-ru/string.xml" />

Die string.xml Datei müss angepasst werden.

 <?xml version='1.0' encoding='utf-8'?>
 <resources>
    <string name="app_name">Введите русский текст здесь.</string>
 </resources>

Ionic 4 Datum der aktuellen Kalenderwoche

Für Filteraufgaben ist es erforderlich das Datum der aktuellen Kalenderwoche zu wissen, um später selektierte Daten an der Oberfläche anzeigen zu können.

Dazu habe ich drei Methoden programmiert, die mir das aktuelle Datum der Kalenderwoche als String zurückgeben.


 currentCalenderWeek(): string {
    this.firstCalenderWeekDay();
    this.lastCalenderWeekDay();
    return this.firstCalenderWeekDay() + this.lastCalenderWeekDay();
  }

Die Methode firstCalenderWeekDay() liefert mir das Startdatum der Woche, was der Montag ist. Dem­ent­spre­chend lastCalenderWeekDay() das Datum des letzten Tag der Kalenderwoche Sonntag.

 
 firstCalenderWeekDay(): string {

    var date = new Date();
    var currentThursday: Date;

    switch (date.getDay()) {
      // Sunday
      case 0:
        currentThursday = new Date(date.getTime() + ((6 - ((date.getDay() + 6) % 7)) - 6) * 86400000);
        break;
      // Monday
      case 1:
        currentThursday = new Date(date.getTime() + (0 - ((date.getDay() + 6) % 7)) * 86400000);
        break;
      // Tuesday
      case 2:
        currentThursday = new Date(date.getTime() + ((1 - ((date.getDay() + 6) % 7)) - 1) * 86400000);
        break;
      // Wednesday
      case 3:
        currentThursday = new Date(date.getTime() + ((2 - ((date.getDay() + 6) % 7)) - 2) * 86400000);
        break;
      // Thursday
      case 4:
        currentThursday = new Date(date.getTime() + ((3 - ((date.getDay() + 6) % 7)) - 3) * 86400000);
        break;
      // Friday
      case 5:
        currentThursday = new Date(date.getTime() + ((4 - ((date.getDay() + 6) % 7)) - 4) * 86400000);
        break;
      // Saturday
      case 6:
        currentThursday = new Date(date.getTime() + ((5 - ((date.getDay() + 6) % 7)) - 5) * 86400000);
        break;
      default:
        break;
    }

    let day = currentThursday.toLocaleDateString(navigator.language, { day: 'numeric' });
    let year = currentThursday.toLocaleDateString(navigator.language, { year: 'numeric' });
    let month = currentThursday.toLocaleDateString(navigator.language, { month: 'numeric' });

    return day + '.' + month + '.' + year + ' ~ ';
  }

 lastCalenderWeekDay(): string {
    var date = new Date();
    var currentThursday: Date;

    switch (date.getDay()) {
      // Sunday
      case 0:
        currentThursday = new Date(date.getTime() + ((6 - ((date.getDay() + 6) % 7)) + 0) * 86400000);
        break;
      // Monday
      case 1:
        currentThursday = new Date(date.getTime() + (0 - ((date.getDay() + 6) % 6)) + 6 * 86400000);
        break;
      // Tuesday
      case 2:
        currentThursday = new Date(date.getTime() + ((1 - ((date.getDay() + 6) % 7)) + 5) * 86400000);
        break;
      // Wednesday
      case 3:
        currentThursday = new Date(date.getTime() + ((2 - ((date.getDay() + 6) % 7)) + 4) * 86400000);
        break;
      // Thursday
      case 4:
        currentThursday = new Date(date.getTime() + ((3 - ((date.getDay() + 6) % 7)) + 3) * 86400000);
        break;
      // Friday
      case 5:
        currentThursday = new Date(date.getTime() + ((4 - ((date.getDay() + 6) % 7)) + 2) * 86400000);
        break;
      // Saturday
      case 6:
        currentThursday = new Date(date.getTime() + ((5 - ((date.getDay() + 6) % 7)) + 1) * 86400000);
        break;
      default:
        break;
    }

    let day = currentThursday.toLocaleDateString(navigator.language, { day: 'numeric' });
    let year = currentThursday.toLocaleDateString(navigator.language, { year: 'numeric' });
    let month = currentThursday.toLocaleDateString(navigator.language, { month: 'numeric' });

    return day + '.' + month + '.' + year;
  }

Die Ausgabe ist wie folgt: 4.5.2020 ~ 10.5.2020

Die Lösung der Aufgabe ist nach meiner Meinung sehr groß und sollte leichter zu lösen sein. Wer eine bessere Lösung kennt, kann diese gern im Kommentar hinterlassen.

Ionic 4 Picker Wert Vorbelegung

Die Daten des Picker die auf der Oberfläche angezeigt werden, sind im Array columns[index] gespeichert. Soll eine Vorbelegung erreicht werden, kann der Picker Index im Vorfeld gesetzt werden. Der Index kommt in meinem Beispiel aus dem Storage.

 let picker = await this.pickerController.create(opts);

 this.storage.get(string).then((data: number) => {
      picker.columns[0].selectedIndex = data;
 });

Das Speichern erfolgt analog und wird durchgeführt, wenn der User den Wert bestätigt.

 let col = await picker.getColumn(string);

 if (pickerAction === 'done') {
      await this.storage.set(string, col.selectedIndex);
 }