(preload) (preload)

Format strings

Defaults

Calling strftime() without parameters will cause the current date to be displayed using the default format string.

        $('#strftime-1').strftime( );

Results:

Various format strings

Testing strftime() using various format strings.

        $('#strftime-2').strftime( '%Y-%m-%d %H:%M:%S (%y)' );
        $('#strftime-3').strftime( '%A %d %B %Y' );
        $('#strftime-4').strftime( '%a %d %b %y' );

Results:

Including the '%' character

Using '%%' in the format string to output the '%' character.

        $('#strftime-5').strftime( '%%' );

Results:

Invalid format strings

Passing invalid format strings to strftime()

        $('#strftime-6').strftime( '%z %w % %' );

Results:

Other parameters

In addition to the format string, strftime() can accept other parameters.

Specifying a Date object to use

It is possible to pass strftime() a specific date to display using a standard Date object.

        var _dt = new Date( "Feb 19, 1981 05:30" );
        $('#strftime-7').strftime( '%Y-%m-%d %H:%M:%S' , _dt );
        $('#strftime-8').strftime( null , _dt );

Results:

Using UTC time instead of local time

strftime()'s third parameter indicates whether UTC time should be used.

        $('#strftime-9').strftime( null , null , true );
        $('#strftime-10').strftime( '%Y-%m-%d %H:%M:%S (%y)' , null , true );
        $('#strftime-11').strftime( '%Y-%m-%d %H:%M:%S (%y)' , _dt , true );

Results:

Locale

While strftime() doesn't support locales explicitely, the strings it uses can be replaced.

Using another set of strings

Using $.strftime.setText() to change the day-of-week and month strings.

        try {
                $.strftime.setText({
                                'days_short' : [ 'Dim', 'Lun' , 'Mar' , 'Mer' , 'Jeu' ,
                                                'Ven' , 'Sam' ] ,
                                'days_long' : [ 'Dimanche' , 'Lundi' , 'Mardi' ,
                                                'Mercredi' , 'Jeudi' , 'Vendredi' ,
                                                'Samedi' ] ,
                                'months_short' : [ 'Jan' , 'Fev' , 'Mar' , 'Avr' ,
                                                'Mai' , 'Jui' , 'Jul' , 'Auo' ,
                                                'Sep' , 'Oct' , 'Nov' , 'Déc' ] ,
                                'months_long' : [ 'Janvier' , 'Février' , 'Mars' ,
                                                'Avril' , 'Mai' , 'Juin' , 'Juillet' ,
                                                'Août' , 'Septembre' , 'Octobre' ,
                                                'Novembre' , 'Décembre' ] ,
                                'format' : '%m/%d/%Y'
                        });
                $('#strftime-settext-1').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-1').html( 'setText() : error ' + e.message );
        }
        $('#strftime-settext-2').strftime( );
        $('#strftime-settext-3').strftime( '%A %d %B %Y' );

Results:

Passing invalid text specification

If incorrect data is passed to $.strftime.setText(), exceptions will be thrown.

        try {
                $.strftime.setText({ });
                $('#strftime-settext-4').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-4').html( e.message );
        }

        try {
                $.strftime.setText({ 'test' : '' });
                $('#strftime-settext-5').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-5').html( e.message );
        }

        try {
                $.strftime.setText({ 'format' : [ ] });
                $('#strftime-settext-6').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-6').html( e.message );
        }

        try {
                $.strftime.setText({ 'days_short' : '' });
                $('#strftime-settext-7').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-7').html( e.message );
        }

        try {
                $.strftime.setText({ 'days_short' : [ ] });
                $('#strftime-settext-8').html( 'setText() : success' );
        } catch ( e ) {
                $('#strftime-settext-8').html( e.message );
        }

Results:

Reverting to defaults

$.strftime.defaults() can be used to revert to the default text specifications.

        $.strftime.defaults( );
        $('#strftime-defaults-1').strftime( );
        $('#strftime-defaults-2').strftime( '%A %d %B %Y' );

Results:

Miscellaneous

Calling strftime() directly

It is possible to get a formatted date and time directly, without using DOM elements. The $.strftime() function accepts the same parameters as the $.fn.strftime() function.

        $('#strftime-direct').click(function() {
                        alert( $.strftime( ) );
                        return false;
                });

Results:

Passing parameters as an object

In some cases, it is easier to pass parameters to strftime() using an object.

        $('#strftime-obj-1').strftime( {} );
        $('#strftime-obj-2').strftime( {
                        format: '%H:%M:%S %m/%d/%Y' ,
                        dateTime : _dt
                });
        $('#strftime-obj-3').strftime( {
                        format: '%H:%M:%S %m/%d/%Y' ,
                        utc: true
                });
        $('#strftime-obj-4').strftime( {
                        dateTime : _dt
                });

Results:

Specifying arbitrary dates

It is possible to specify arbitrary dates for strftime() to display, including dates that wouldn't normally fit in a Date() object.

        $('#strftime-dtobj-1').strftime( { dateTime : {
                        H: 2 ,
                        M: 38 ,
                        S: 53 ,
                        Y: 1666 ,
                        m: 2 ,
                        d: 5
                } } );
        $('#strftime-dtobj-2').strftime( {
                        dateTime : {
                                        H: 2 ,
                                        M: 38 ,
                                        S: 53 ,
                                        Y: 1666 ,
                                        m: 2 ,
                                        d: 5
                                } ,
                        format: '%H:%M:%S %m/%d/%Y (%y)'
                } );

Results: