<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>14176</bug_id>
          
          <creation_ts>2007-06-15 13:56:13 -0700</creation_ts>
          <short_desc>Some date values not handled consistently with IE/Firefox</short_desc>
          <delta_ts>2011-11-30 18:15:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>javascript:var d = new Date(&quot;November 06 2006, 17:53:01&quot;); alert( d + &quot;\nAbove document.write should have written: &apos;Mon Nov 6 17:53:01 PST 2006&apos;&quot;);</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arno Gourdol">arno</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>mrowe</cc>
    
    <cc>mvujovic</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>7388</commentid>
    <comment_count>0</comment_count>
    <who name="Arno Gourdol">arno</who>
    <bug_when>2007-06-15 13:56:13 -0700</bug_when>
    <thetext>The following code snippet does not return the expected result.

var d = new Date(&quot;November 06 2006, 17:53:01&quot;);
document.write( d + &quot;&lt;br&gt;Above document.write should have written: &apos;Mon Nov 6 17:53:01 PST 2006&apos; );

The correct answer is returned by IE and FireFox. Instead, the date returned is the string &quot;Invalid Date&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77229</commentid>
    <comment_count>1</comment_count>
    <who name="David Gatwood">dgatwood</who>
    <bug_when>2008-04-10 19:34:24 -0700</bug_when>
    <thetext>
I just ran into a very closely related bug in an existing website that probably subtly impacts a lot of other websites as well.  The following script should show exactly the same date in both cases, and in FireFox and IE, it does.  In Safari, it subtracts four minutes instead of four hours!

Please spend some time on the date parser and fix these issues....

&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
        var mydate = new Date(&quot;4/13/2008 12:00 AM GMT-4&quot;);
        var mydate_b = new Date(&quot;4/13/2008 12:00 AM GMT-0400&quot;);

        document.write(mydate + &apos; = &apos; + mydate_b);
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507852</commentid>
    <comment_count>2</comment_count>
      <attachid>116287</attachid>
    <who name="Max Vujovic">mvujovic</who>
    <bug_when>2011-11-22 15:58:24 -0800</bug_when>
    <thetext>Created attachment 116287
Patch

I couldn&apos;t reproduce Arno&apos;s original bug in r100958. The code snippet outputs &quot;Mon Nov 06 2006 17:53:01 GMT-0800 (PST)&quot; instead of &quot;Invalid Date&quot; for me.

However, I did reproduce David&apos;s bug in the second comment. WebKit interprets &quot;GMT-4&quot; as 4 minutes. On the other hand, IE, Firefox, and Opera interpret &quot;GMT-4&quot; as 4 hours. This case is defined as implementation specific in the ECMA Standard (See Section 15.9.4.2), but I think WebKit should match IE, FireFox, and Opera&apos;s behavior. 

WebKit&apos;s implementation reads in the number after &quot;GMT-&quot; and mods by 100 for the minute offset and divides by 100 for the hour offset for all numbers. On the other hand, IE, FireFox, and Opera only do this if the number is greater than or equal to 24. If the number is less than 24, they interpret it as an hour offset with no minutes.

Interestingly, even &quot;GMT-0004&quot; is interpreted as four hours in IE, FireFox, and Opera.

I used this test script to compare the behaviors:

&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-4&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-4&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-23&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-23&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-023&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-023&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-0023&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-0023&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-24&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-24&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-024&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-024&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-0024&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-0024&apos;) + &apos;&lt;br/&gt;&apos;);
     document.write(&apos;&quot;4/13/2008 12:00 AM GMT-0123&quot; parsed: &apos; + new Date(&apos;4/13/2008 12:00 AM GMT-0123&apos;) + &apos;&lt;br/&gt;&apos;);              
&lt;/script&gt;

The results were:

GMT-4 = 4 hours in IE, FireFox, and Opera vs. 4 minutes in WebKit

GMT-23 = 23 hours in IE, FireFox, and Opera vs. 23 minutes in WebKit
GMT-023 = same as above
GMT-0023 = same as above

GMT-24 = 24 minutes in all implementations (IE, FireFox, Opera, and WebKit)
GMT-024= same as above
GMT-0024 = same as above

GMT-0123 = 1 hour, 23 minutes in all implementations (IE, FireFox, Opera, and WebKit)

I&apos;ve uploaded a patch that makes WebKit match the IE, FireFox, and Opera behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511933</commentid>
    <comment_count>3</comment_count>
      <attachid>116287</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-30 11:21:14 -0800</bug_when>
    <thetext>Comment on attachment 116287
Patch

Looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512306</commentid>
    <comment_count>4</comment_count>
      <attachid>116287</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 18:15:31 -0800</bug_when>
    <thetext>Comment on attachment 116287
Patch

Clearing flags on attachment: 116287

Committed r101582: &lt;http://trac.webkit.org/changeset/101582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512307</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 18:15:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116287</attachid>
            <date>2011-11-22 15:58:24 -0800</date>
            <delta_ts>2011-11-30 18:15:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>PatchForBug14176</filename>
            <type>text/plain</type>
            <size>4649</size>
            <attacher name="Max Vujovic">mvujovic</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTAwOTcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTExLTIxICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KKworICAgICAg
ICBTb21lIGRhdGUgdmFsdWVzIG5vdCBoYW5kbGVkIGNvbnNpc3RlbnRseSB3aXRoIElFL0ZpcmVm
b3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTc2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
ZCB0aW1lIHpvbmUgb2Zmc2V0IHBhcnNpbmcgYmVoYXZpb3IgdG8gbWF0Y2ggSUUvRmlyZWZveC9P
cGVyYSdzIGluCisgICAgICAgIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudCBjYXNlcyBsaWtlICJH
TVQtNCIuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJz
ZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKwogMjAxMS0xMS0yMSAgU2ltb24g
SGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBTcGVl
ZCB1cCBkZWJ1ZyBidWlsZHMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVN
YXRoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0RhdGVNYXRo
LmNwcAkocmV2aXNpb24gMTAwOTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9EYXRl
TWF0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxNyw3ICs5MTcsMTAgQEAgZG91YmxlIHBhcnNl
RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhYwogICAgICAgICAgICAgaW50IHNnbiA9IChvIDwg
MCkgPyAtMSA6IDE7CiAgICAgICAgICAgICBvID0gbGFicyhvKTsKICAgICAgICAgICAgIGlmICgq
ZGF0ZVN0cmluZyAhPSAnOicpIHsKLSAgICAgICAgICAgICAgICBvZmZzZXQgPSAoKG8gLyAxMDAp
ICogNjAgKyAobyAlIDEwMCkpICogc2duOworICAgICAgICAgICAgICAgIGlmIChvID49IDI0KQor
ICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSAoKG8gLyAxMDApICogNjAgKyAobyAlIDEwMCkp
ICogc2duOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgb2Zmc2V0
ID0gbyAqIDYwICogc2duOwogICAgICAgICAgICAgfSBlbHNlIHsgLy8gR01UKzA1OjAwCiAgICAg
ICAgICAgICAgICAgbG9uZyBvMjsKICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTG9uZyhkYXRl
U3RyaW5nLCAmbmV3UG9zU3RyLCAxMCwgJm8yKSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDk3MSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDExLTExLTIxICBNYXggVnVqb3ZpYyAgPG12dWpvdmljQGFkb2JlLmNvbT4KKworICAgICAg
ICBTb21lIGRhdGUgdmFsdWVzIG5vdCBoYW5kbGVkIGNvbnNpc3RlbnRseSB3aXRoIElFL0ZpcmVm
b3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTc2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdl
ZCB0aW1lIHpvbmUgb2Zmc2V0IHBhcnNpbmcgYmVoYXZpb3IgdG8gbWF0Y2ggSUUvRmlyZWZveC9P
cGVyYSdzIGluCisgICAgICAgIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudCBjYXNlcyBsaWtlICJH
TVQtNCIuCisKKyAgICAgICAgKiB3dGYvRGF0ZU1hdGguY3BwOgorICAgICAgICAoV1RGOjpwYXJz
ZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJzKToKKwogMjAxMS0xMS0yMSAgQWRhbSBL
bGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBjci1saW51eCByZWJhc2VsaW5l
cyBmb3IgcjEwMDk0OS4gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9kYXRlLXBhcnNlLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDA5
NTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RhdGUtcGFyc2UtdGVzdC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTIwNSw2ICsyMDUsMTUgQEAgUEFTUyBEYXRlLnBhcnNlKCJkZWMg
MjUsMTk5NSwxMzozMCIpID09IAogUEFTUyBEYXRlLnBhcnNlKCJNb24gSnVuIDIwIDExOjAwOjAw
IENEVCAyMDExIikgPT0gMTMwODU4NTYwMDAwMCBpcyB0cnVlCiBQQVNTIERhdGUucGFyc2UoIk1P
TiBKVU4gMjAgMTE6MDA6MDAgQ0RUIDIwMTEiKSA9PSAxMzA4NTg1NjAwMDAwIGlzIHRydWUKIFBB
U1MgRGF0ZS5wYXJzZSgibW9uIGp1biAyMCAxMTowMDowMCBjZHQgMjAxMSIpID09IDEzMDg1ODU2
MDAwMDAgaXMgdHJ1ZQorUEFTUyBEYXRlLnBhcnNlKCI0LzEzLzIwMDggMTI6MDAgQU0gR01ULTQi
KSA9PSAxMjA4MDU5MjAwMDAwIGlzIHRydWUKK1BBU1MgRGF0ZS5wYXJzZSgiNC8xMy8yMDA4IDEy
OjAwIEFNIEdNVC0yMyIpID09IDEyMDgxMjc2MDAwMDAgaXMgdHJ1ZQorUEFTUyBEYXRlLnBhcnNl
KCI0LzEzLzIwMDggMTI6MDAgQU0gR01UKzIzIikgPT0gMTIwNzk2MjAwMDAwMCBpcyB0cnVlCitQ
QVNTIERhdGUucGFyc2UoIjQvMTMvMjAwOCAxMjowMCBBTSBHTVQtMDAyMyIpID09IDEyMDgxMjc2
MDAwMDAgaXMgdHJ1ZQorUEFTUyBEYXRlLnBhcnNlKCI0LzEzLzIwMDggMTI6MDAgQU0gR01ULTI0
IikgPT0gMTIwODA0NjI0MDAwMCBpcyB0cnVlCitQQVNTIERhdGUucGFyc2UoIjQvMTMvMjAwOCAx
MjowMCBBTSBHTVQrMjQiKSA9PSAxMjA4MDQzMzYwMDAwIGlzIHRydWUKK1BBU1MgRGF0ZS5wYXJz
ZSgiNC8xMy8yMDA4IDEyOjAwIEFNIEdNVC0wMDI0IikgPT0gMTIwODA0NjI0MDAwMCBpcyB0cnVl
CitQQVNTIERhdGUucGFyc2UoIjQvMTMvMjAwOCAxMjowMCBBTSBHTVQtMTIzIikgPT0gMTIwODA0
OTc4MDAwMCBpcyB0cnVlCitQQVNTIERhdGUucGFyc2UoIjQvMTMvMjAwOCAxMjowMCBBTSBHTVQt
MTIzMCIpID09IDEyMDgwODk4MDAwMDAgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Njcmlw
dC10ZXN0cy9kYXRlLXBhcnNlLXRlc3QuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9zY3JpcHQtdGVzdHMvZGF0ZS1wYXJzZS10ZXN0LmpzCShyZXZpc2lvbiAxMDA5NTgpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kYXRlLXBhcnNlLXRlc3QuanMJKHdv
cmtpbmcgY29weSkKQEAgLTE1MiwzICsxNTIsMTQgQEAgdGVzdERhdGVQYXJzZSgiRGVjIDI1LCAx
OTk1LCAxMzozMCIsICI4MQogdGVzdERhdGVQYXJzZSgiRGVjIDI1LDE5OTUsMTM6MzAiLCAiODE5
ODk4MjAwMDAwICsgdGltZVpvbmVPZmZzZXQiKTsKIAogdGVzdERhdGVQYXJzZSgiTW9uIEp1biAy
MCAxMTowMDowMCBDRFQgMjAxMSIsICIxMzA4NTg1NjAwMDAwIik7CisKKy8vIElFL0ZpcmVmb3gv
T3BlcmEgY29tcGF0aWJpbGl0eTogZmFsbGJhY2sgdGltZSBvZmZzZXQgcGFyc2luZwordGVzdERh
dGVQYXJzZUV4YWN0KCI0LzEzLzIwMDggMTI6MDAgQU0gR01ULTQiLCAiMTIwODA1OTIwMDAwMCIp
OwordGVzdERhdGVQYXJzZUV4YWN0KCI0LzEzLzIwMDggMTI6MDAgQU0gR01ULTIzIiwgIjEyMDgx
Mjc2MDAwMDAiKTsKK3Rlc3REYXRlUGFyc2VFeGFjdCgiNC8xMy8yMDA4IDEyOjAwIEFNIEdNVCsy
MyIsICIxMjA3OTYyMDAwMDAwIik7Cit0ZXN0RGF0ZVBhcnNlRXhhY3QoIjQvMTMvMjAwOCAxMjow
MCBBTSBHTVQtMDAyMyIsICIxMjA4MTI3NjAwMDAwIik7Cit0ZXN0RGF0ZVBhcnNlRXhhY3QoIjQv
MTMvMjAwOCAxMjowMCBBTSBHTVQtMjQiLCAiMTIwODA0NjI0MDAwMCIpOwordGVzdERhdGVQYXJz
ZUV4YWN0KCI0LzEzLzIwMDggMTI6MDAgQU0gR01UKzI0IiwgIjEyMDgwNDMzNjAwMDAiKTsKK3Rl
c3REYXRlUGFyc2VFeGFjdCgiNC8xMy8yMDA4IDEyOjAwIEFNIEdNVC0wMDI0IiwgIjEyMDgwNDYy
NDAwMDAiKTsKK3Rlc3REYXRlUGFyc2VFeGFjdCgiNC8xMy8yMDA4IDEyOjAwIEFNIEdNVC0xMjMi
LCAiMTIwODA0OTc4MDAwMCIpOwordGVzdERhdGVQYXJzZUV4YWN0KCI0LzEzLzIwMDggMTI6MDAg
QU0gR01ULTEyMzAiLCAiMTIwODA4OTgwMDAwMCIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>