eight04/angular-datetime

Specify timezone in parser

eight04 opened this issue · 2 comments

The date filter in Angular now accept timezone argument. We should support it as well.
https://docs.angularjs.org/api/ng/filter/date

Maybe something like:

// different timezone will result in different datestring
parser.setDate(new Date);
datestring = parser.getText(timezone);

// if the timezone is not provided, it should look 'Z' token in datestring for the timezone.
parser.parse(datestring, timezone);
date = parser.getDate();

This is better for parsing:

parser.setTimezone(timezone);
parser.setDate(new Date); // always use time stamp of the date object
parser.getText();         // get different text under different timezone

parser.parse(datestring); // if datestring contains timezone definition 
                          // (i.e. 'Z' token), set timezone before parsing.
                          // result timestamp will be move to correct timezone.
parser.getDate();


           ---- parse -->            -- de-offset -->
datestring                dateobject                  realModel
           <-- getText --            <--- offset ----

Only create new Date in offset/de-offset phase.
Set timezone in parse phase.
Get timezone in getText phase.

Fixed in 3.0.0.