Show:

A base class for A.DateParser.

Constructor

A.DateParser

(
  • opt_pattern
)

Parameters:

  • opt_pattern String

    Mask as strftime string.

Methods

_expandPattern

(
  • pattern
  • pos
)
String protected

Expands the so called "aggregates" from the strftime pattern, e.g. %X represents expanded %Hh%Mmin%Ss pattern.

Parameters:

  • pattern String

    Mask as strftime string.

  • pos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

Returns:

String:

Expanded pattern.

_findBestStringMatch

(
  • val
  • data
  • opt_inverse
)
Number protected

Attempts to match the text at a given position against an array of strings. The longer match is classified as best match, e.g if the data array contains ["f", "fo", "foo", ...] all positions will match "foobar". The longest match is "foobar".

Parameters:

  • val String

    Keyword The string to match to.

  • data Array

    The string array of matching patterns.

  • opt_inverse Boolean

    Inverts the matching test. Instead of test array values against val, tests val against the array values.

Returns:

Number:

Best match index. Returns -1 if doesn't find any match.

_findNextSeparatorPos

(
  • compiled
  • compiledPos
  • text
  • Current
)
Number protected

Looks for the position of the next separator that is included in the text.

Parameters:

  • compiled Array

    Information about the compiled mask

  • compiledPos Number

    Current position in the compiled array

  • text String

    The text that is being parsed

  • Current Number

    position in the text being parsed

Returns:

Number:

Position of the next separator in the compiled array

_getCalendarDate

(
  • data
  • opt_date
)
Date protected

Based on the fields set, fill a Date object. For those fields that not set, use the passed in date object's value.

Parameters:

  • data Array

    The string array of matching patterns.

  • opt_date Date

    Date object to be filled.

Returns:

Date:

Filled date object. Returns false if have nothing to fill.

_getLangResource

(
  • token
)
Object protected

Gets resource object with tokens information for the loaded language.

Parameters:

  • token String

    Strftime token.

Returns:

Object:

Resource object.

_getNextNumericValue

(
  • text
  • textPos
)
String protected

Infer the next numeric value based on textPos position.

Parameters:

  • text String

    Input text.

  • textPos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

Returns:

String:

Inferred next value.

_getNextValue

(
  • text
  • textPos
  • opt_separator
  • opt_numeric
)
String protected

Infer the next value based on textPos position.

Parameters:

  • text String

    Input text.

  • textPos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

  • opt_separator String

    If specified is used as boundary of the next value.

  • opt_numeric Boolean

    If specified, find only next numeric values.

Returns:

String:

Inferred next value.

_getPatternHints

(
  • token
)
Object protected

Based on the strftime token, finds the hints object. Hints objects contains information such as size, numeric tokens and setters.

Parameters:

  • token String

    Strftime token.

Returns:

Object:

Hints object. If token is not supported returns false.

_subparseNumericBlob

(
  • blob
  • textPos
  • i
)
String protected

Sub-parses a numeric value. Some tokens are used in sequence, e.g. %d%m, resulting in ambigous values such as "20122013", for 12/20/2013. The found ambigous values are tested against the available token information in order to be separated.

Parameters:

  • blob String

    Ambigous numeric value.

  • textPos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

  • i Number

    Token position on the compiled array.

Returns:

String:

Non-ambiguous numeric value.

_subparseStringBlob

(
  • blob
  • textPos
  • i
)
String protected

Sub-parses a string value. Some tokens are used in sequence, e.g. %a%b, resulting in ambigous values such as "MonJun". The found ambigous values are tested against the available token values in order to be separated.

Parameters:

  • blob String

    Ambigous string value.

  • textPos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

  • i Number

    Token position on the compiled array.

Returns:

String:

Non-ambiguous string value.

_subparseTimeZone

(
  • text
  • textPos
  • i
)
Object protected

Sub-parses timezones.

Parameters:

  • text String

    Input text.

  • textPos Array

    One position array that holds the text position number. An array instance is used to keep reference to the position counter, therefore can be passed to different subparse methods.

  • i Number

    Token position on the compiled array.

Returns:

Object:

Found timezone.

compilePattern

(
  • pattern
)

"Compiles" the strftime pattern. The same DateParser instance can be reused to other "compiled" masks.

Parameters:

  • pattern String

    Mask as strftime string.

parse

(
  • mask
  • text
  • opt_date
)
Date

Takes a string mask and a text as input and parses it as a native JavaScript Date.

Parameters:

  • mask String

    Mask as strftime string.

  • text String

    Text input to be parsed.

  • opt_date Date

    Optional Date object to be used a base date for filling the parsed values.

    parse {HTML} (Optional)

    Any strftime string is supported, such as %I:%M:%S %p. This format has several specifiers defined by the Open group at: http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html

    PHP added a few of its own, defined at: http://www.php.net/strftime

    This JavaScript implementation supports all the PHP specifiers and a few more. The full list is below:

    If not specified, it defaults to the ISO 8601 standard date format: %Y-%m-%d.

    • %a abbreviated weekday name according to the current locale
    • %A full weekday name according to the current locale
    • %b abbreviated month name according to the current locale
    • %B full month name according to the current locale
    • %c preferred date and time representation for the current locale
    • %C century number (the year divided by 100 and truncated to an integer, range 00 to 99)
    • %d day of the month as a decimal number (range 01 to 31)
    • %D same as %m/%d/%y
    • %e day of the month as a decimal number, a single digit is preceded by a space (range 1 to 31)
    • %E day of the month as a decimal number (range 1 to 31)
    • %F same as %Y-%m-%d (ISO 8601 date format)
    • %g like %G, but without the century
    • %G The 4-digit year corresponding to the ISO week number
    • %h same as %b
    • %H hour as a decimal number using a 24-hour clock (range 00 to 23)
    • %I hour as a decimal number using a 12-hour clock (range 01 to 12)
    • %j day of the year as a decimal number (range 001 to 366)
    • %k hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)
    • %l hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.)
    • %m month as a decimal number (range 01 to 12)
    • %M minute as a decimal number
    • %n newline character
    • %p either AM or PM according to the given time value, or the corresponding strings for the current locale
    • %P like %p, but lower case
    • %r time in a.m. and p.m. notation equal to %I:%M:%S %p
    • %R time in 24 hour notation equal to %H:%M
    • %s number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC
    • %S second as a decimal number
    • %t tab character
    • %T current time, equal to %H:%M:%S
    • %u weekday as a decimal number [1,7], with 1 representing Monday
    • %U week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week
    • %V The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.
    • %w day of the week as a decimal, Sunday being 0
    • %W week number of the current year as a decimal number, starting with the first Monday as the first day of the first week
    • %x preferred date representation for the current locale without the time
    • %X preferred time representation for the current locale without the date
    • %y year as a decimal number without a century (range 00 to 99)
    • %Y year as a decimal number including the century
    • %z numerical time zone representation
    • %Z time zone name or abbreviation
    • %% a literal % character

Returns:

Date:

Native JavaScript Date. Returns false if cannot parse.

Properties

HINTS

Object static

Static property provides an object that contains hints information for possible token values, e.g. year, month, day etc.

HINTS.AGGREGATES

Object static

Static property provides an object that contains hints information for aggregates tokens.

HINTS.AMPM

Object static

Static property provides an object that contains hints information for ampm tokens.

HINTS.DAY

Object static

Static property provides an object that contains hints information for day tokens.

HINTS.HOURS

Object static

Static property provides an object that contains hints information for hours tokens.

HINTS.MINUTES

Object static

Static property provides an object that contains hints information for minutes tokens.

HINTS.MONTH

Object static

Static property provides an object that contains hints information for month tokens.

HINTS.SECONDS

Object static

Static property provides an object that contains hints information for seconds tokens.

HINTS.TZ

Object static

Static property provides an object that contains hints information for timezone tokens.

HINTS.YEAR

Object static

Static property provides an object that contains hints information for year tokens.

TOKEN_PREFIX

String static

Static property provides a string to identify the token prefix, e.g. %A.

TWO_DIGIT_YEAR_BASE

Number static

Static property provides a base year to sum two digit years, e.g. For the mask %Y, "13" will be parsed to 2013.