Making WordPress.org


Ignore:
Timestamp:
04/14/2016 05:40:28 PM (9 years ago)
Author:
coffee2code
Message:

Make home theme: For upcoming meetings page, support showing localized date in Safari.

Due to the lack of support for arguments to .toLocaleTimeString() in Safari (and possibly other browsers), only the localized time would appear. Therefore check for support, and if not present, use .toLocaleDateString() to provide the date part of the date-time string.

See r11778.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-makehome/archive-meeting.php

    r2225 r2956  
    6666            return d;
    6767        }
    68         var format_date = function (d) {
     68        var format_time = function (d) {
    6969            return d.toLocaleTimeString(navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric', hour: '2-digit', minute:'2-digit', timeZoneName: 'short'});
    7070        }
     71        var format_date = function (d) {
     72            return d.toLocaleDateString(navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric'});
     73        }
     74        /* Not all browsers, particularly Safari, support arguments to .toLocaleTimeString(). */
     75        var toLocaleTimeStringSupportsLocales = (function() {
     76            try {
     77                new Date().toLocaleTimeString('i');
     78            } catch (e) {
     79                return e.name === 'RangeError';
     80            }
     81        })();
    7182        var nodes = document.getElementsByTagName('abbr');
    7283        for (var i=0; i<nodes.length; ++i) {
     
    7586                var d = parse_date(node.getAttribute('title'));
    7687                if (d) {
    77                     node.textContent = format_date(d);
     88                    var new_text = '';
     89                    if ( ! toLocaleTimeStringSupportsLocales ) {
     90                        new_text += format_date(d);
     91                        new_text += ' ';
     92                    }
     93                    new_text += format_time(d);
     94                    node.textContent = new_text;
    7895                }
    7996            }
Note: See TracChangeset for help on using the changeset viewer.