code: function formatDate(el) {
      // map attribute values to strftime
      var props = {
        weekday: {
          'short': '%a',
          'long': '%A'
        },
        day: {
          'numeric': '%e',
          '2-digit': '%d'
        },
        month: {
          'short': '%b',
          'long': '%B'
        },
        year: {
          'numeric': '%Y',
          '2-digit': '%y'
        }
      };
  
      // build a strftime format string
      var format = isDayFirst() ? 'weekday day month year' : 'weekday month day, year';
      for (var prop in props) {
        var value = props[prop][el.getAttribute(prop)];
        format = format.replace(prop, value || '');
      }
  
      // clean up year separator comma
      format = format.replace(/(\s,)|(,\s$)/, '');
  
      // squeeze spaces from final string
      return strftime(el._date, format).replace(/\s+/, ' ').trim();
    }
docs: Private: Format a date according to the `weekday`, `day`, `month`, and `year` attribute values.  This doesn't use Intl.DateTimeFormat to avoid creating text in the user's language when the majority of the surrounding text is in English. There's currently no way to separate the language from the format in Intl.  el - The local-time element to format.  Returns a date String or null if no date formats are provided.