JosephMajaseSithole / datejs

Automatically exported from code.google.com/p/datejs
0 stars 0 forks source link

[INVALID] Parse issue #33

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Date.parse("2008/03/11 5:17:00 -0800")
Tue Mar 11 2008 06:17:00 GMT-0700 (PDT) _orient=1 _is=false

Why does it return back 6:17 AM?

Original issue reported on code.google.com by eggie5 on 11 Mar 2008 at 10:46

GoogleCodeExporter commented 8 years ago
It looks like the parser isn't picking up my UTC offset of "-0800" because the 
ouput displays "-0700". Would 
this seem correct?

Original comment by eggie5 on 11 Mar 2008 at 10:48

GoogleCodeExporter commented 8 years ago
Hi eggie5,

This is the default functionality of JavaScript, which is to return the date in
relation to the local time of the computer the parsing is being run on.

You are parsing a Date which is -0800 hours from UTC, but your browser is -0700 
hours
from UTC. The browser is going to adjust the Date by 1 hour to return a Date in
relation to your local browser timezone offset. This offset will change 
throughout
the year if your machine observes Daylight Saving Time (Summer Time).

For example, you can reproduce these exact same results on a page that does not
include Datejs. Try the following (I'm using FireFox/FireBug to do the 
demonstration).

Example

// NOTE: Please ensure Datejs has NOT been included on the page.

// First just toString a new Date object.
console.log(new Date().toString());

// On my machine the above code returns the following
"Wed Mar 12 2008 11:31:38 GMT-0600 (Mountain Daylight Time)"

// Now take that string, chop off the "(Mountain Daylight Time)", and
// change to the "GMT-0600" to "GMT-0700".
// Pass this modified string into the native Date.parse function.
console.log(new Date(Date.parse("Wed Mar 12 2008 11:31:38 GMT-0700")));

// The above will write out the following in FireBug.
Wed Mar 12 2008 12:31:38 GMT-0600 (Mountain Daylight Time)

Notice the return Date has been corrected back to the local time of the 
machine. The
hours and GMT/UTC offset has been adjusted to accurately reflect the local 
time. The
actual Date and Time have not changed, as it's still accurate in relation to 
GMT/UTC.

To the best of my knowledge there is no way to change this native JavaScript 
behaviour.

Hope this helps answer your question.

Original comment by geoff%co...@gtempaccount.com on 12 Mar 2008 at 6:08

GoogleCodeExporter commented 8 years ago

Original comment by geoff%co...@gtempaccount.com on 27 Mar 2008 at 10:25