JSFiddle - React, Tailwind, and code Playground
by timrwood
JavaScript
// moment.js
// version : 1.7.0
// author : Tim Wood
// license : MIT
// momentjs.com
(function (Date, undefined) {
/************************************
Constants
************************************/
var moment,
VERSION = "1.7.0",
round = Math.round, i,
// internal storage for language config files
languages = {},
currentLanguage = 'en',
// check for nodeJS
hasModule = (typeof module !== 'undefined' && module.exports),
// Parameters to check for on the lang config. This list of properties
// will be inherited from English if not provided in a language
// definition. monthsParse is also a lang config property, but it
// cannot be inherited and as such cannot be enumerated here.
langConfigProperties = 'months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|'),
// ASP.NET json date format regex
aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
// format tokens
formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|SS?S?|zz?|ZZ?)/g,
localFormattingTokens = /(LT|LL?L?L?)/g,
formattingRemoveEscapes = /(^\[)|(\\)|\]$/g,
// parsing tokens
parseMultipleFormatChunker = /([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,
// parsing token regexes
parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
parseTokenThreeDigits = /\d{3}/, // 000 - 999
parseTokenFourDigits = /\d{1,4}/, // 0 - 9999
parseTokenWord = /[0-9a-z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+/i, // any word characters or numbers
parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/i, // +00:00 -00:00 +0000 -0000 or Z
parseTokenT = /T/i, // T (ISO seperator)
// preliminary iso regex
// 0000-00-00...