gustavowiller/intl-date-time

International datepicker for Laravel Nova.

Downloads

7

Stars

2

Version

v1.0.8

International DateTime

Latest Version on Packagist Total Downloads

International datepicker for Laravel Nova

Apply localisation in 63 different locales to Laravel Nova's default DateTime field that currently doesn't support localisation out of the box.

International DateTime

Installation

You can install the package in to a Laravel app that uses Nova via composer:

composer require techouse/intl-date-time

Usage

The API is adapted from Nova's default DateTime Field.

The module itself offers 3 optional configurations:

  • locale - OPTIONAL - With this you can define the module's locale. If you do not it will automatically use your app's config('app.locale'). If you manually define an unsupported locale it will throw an Exception!
  • dateFormat - OPTIONAL - With this you can define a date format. If you do not provide it the module will automatically use the appropriate locale's date format. The format must be MomentJS compatible!
  • timeFormat - OPTIONAL - With this you can define a time format. If you do not provide it the module will automatically use HH:mm:ss. The format must be MomentJS compatible! If you manually define an unsupported time format it will throw an Exception!

Simply use IntlDateTime class instead of DateTime directly or alias it like the example below so you won't have to refactor too much existing code.

<?php

namespace App\Nova;

use Illuminate\Http\Request;
use Techouse\IntlDateTime\IntlDateTime as DateTime;

class User extends Resource
{
    /**
     *  This is how you use and configure this module
     */
    public function fields(Request $request)
    {
        return [
            DateTime::make(__('Updated at'), 'updated_at')
                    /**
                     * The module automatically uses your app's locale 
                     * from config('app.locale'), however you can manually
                     * override this by setting it like this.
                     * 
                     * IMPORTANT: Check the list of supported locales below in this readme!
                     * 
                     * NOTE: If the automatic locale is not supported by MomentJS 
                     * the module defaults to 'en-gb' (British English).
                     */
                    ->locale('sl'),
                    
            DateTime::make(__('Created at'), 'created_at')
                    /**
                      * You can optionally set a custom DATE format.
                      * 
                      * It has to be compatible with MomentJS!!!
                      * https://momentjs.com/docs/#/displaying/format/
                      */
                    ->dateFormat('DD.MM.YYYY'),   
                    
            DateTime::make(__('Deleted at'), 'deleted_at')
                    /**
                      * You can optionally set a custom TIME format
                      * 
                      * It has to be compatible with MomentJS!!!
                      * https://momentjs.com/docs/#/displaying/format/
                      */
                    ->timeFormat('HH:mm:ss'),
        ];
    }

    /**
     * The rest of the Resource ... bla bla bla :)
     */
}

List of supported locales

This module supports only locales that are SUPPORTED BY BOTH MomentJS AND Flatpickr!

The 63 locales that are currently supported are:

Language locale
Albanian sq
Arabic ar
Bangla bn
Belarusian be
Bulgarian bg
Burmese my
Catalan ca
Chinese (China) zh-cn
Chinese (Hong Kong) zh-hk
Chinese (Taiwan) zh-tw
Croatian hr
Czech cs
Danish da
Dutch nl
English en
English (Australia) en-au
English (Canada) en-ca
English (Ireland) en-ie
English (New Zealand) en-nz
English (United Kingdom) en-gb
Esperanto eo
Estonian et
Finnish fi
French fr
French (Canada) fr-ca
French (Switzerland) fr-ch
German de
German (Austria) de-at
German (Switzerland) de-ch
Greek el
Hebrew he
Hindi hi
Hungarian hu
Indonesian id
Italian it
Japanese ja
Kazakh kk
Khmer km
Korean ko
Latvian lv
Lithuanian lt
Macedonian mk
Malaysian ms
Norwegian nb
Persian fa
Polish pl
Portuguese pt
Punjabi pa-in
Romanian ro
Russian ru
Serbian sr
Sinhala si
Slovak sk
Slovenian sl
Spanish es
Spanish (Dominican Republic) es-do
Spanish (United States) es-us
Swedish sv
Thai th
Turkish tr
Ukrainian uk
Vietnamese vi
Welsh cy

NOTE

This an evolution of my original Slovenian DateTime

gustavowiller

Author

gustavowiller