Bastien Donjon

Développeur web à Bordeaux

date Archive

Friday

27

November 2015

0

COMMENTS

ISO8601 Date validator for Laravel 5

Written by , Posted in PHP

date_format rule for Laravel 5 Validator don’t work.

So here is a validation rule for Laravel :

<?php

// file : app/Provider/AppServiceProvider.php

namespace App\Providers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        // Validation
        Validator::extend(
            'iso_date',
            function ($attribute, $value, $parameters, $validator) {
                $regex = '/^(?:[1-9]\d{3}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1\d|2[0-8])|' .
                         '(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[1-9]' .
                         '\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)' .
                         '-02-29)T(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:Z|[+-][01]\d:[0-5]\d)$/';

                return preg_match_all($regex, $value) > 0;
            }
        );
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

Original answer on Stackoverflow

Tuesday

16

April 2013

0

COMMENTS

Moment.js : Le couteau Suisse pour travailler avec les dates en javascript

Written by , Posted in Javascript

A en juger par le nombre d’étoiles que Moment.js a recueilli sur GitHub, vous le connaissez peut être déjà. Mais pour ceux qui ne l’ont pas, Moment.js est une librairie JavaScript bien documentée pour l’analyse, la validation, la manipulation et le formatage des dates.

La librairie peut s’utiliser dans le navigateur ou Node.js et prend en charge de nombreuses langues.

Voici quelques exemples d’utilisation :

moment().format('MMMM Do YYYY, h:mm:ss a');
// => April 16th 2013, 5:16:17 pm
moment().format('dddd');
// => Tuesday
moment().format("MMM Do YY");
// => Apr 16th 13
moment().format('YYYY [escaped] YYYY');
// => 2013 escaped 2013
moment().format();
// => 2013-04-16T17:18:04+02:00

La bibliothèque ne pèse que 5,5 kb et a récemment atteint la version 2.0, donc si vous n’avez pas regardé depuis un certain temps maintenant c’est le temps de vous mettre à jour.