Problem with document.lastModified in Mozilla

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Bart

    #1

    Problem with document.lastModified in Mozilla

    Hallo,

    I'm have a problem with the following script:


    function wr(s)
    {
    //Just got tired of writing document.write,
    //so I created a shorthand version
    document.write( s);
    }


    function lm()
    {
    //I know this can be shorter but the original script
    //tried to format the outputstring, wichh did not
    //work in Mozilla, so I commented a lot out
    //and this is what's left of it...
    var s = document.lastMo dified;
    return s;
    }

    function lmstring()
    {
    var s = "This page was last modified at: ";
    s += lm();
    s += ".";
    return s;
    }


    <html>

    ...

    <script type="text/JavaScript">
    <!--
    wr(lmstring());
    // -->
    </script>

    ....
    </html>


    This _should_ return the date and time the document was last modified
    (saved), however in Mozilla (1.4; Windows ME) it will return the
    actual current date and time (as if I'd used "new Date()").
    In IE (5.50) it behaves as I expect.

    What am I doing wrong (or is it a Mozilla bug ???).

    (The script is in an external .js file, if that should make any
    difference)
    --
    Bart Broersma
    broersma.juda_A NTISPAM_@tiscal i.nl
    (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)
  • @SM

    #2
    Re: Problem with document.lastMo dified in Mozilla



    Bart a ecrit :[color=blue]
    >
    > Hallo,
    >
    > I'm have a problem with the following script:[/color]

    function wr() { document.write( lmstring()); }

    [color=blue]
    > function wr(s)
    > {
    > //Just got tired of writing document.write,
    > //so I created a shorthand version
    > document.write( s);
    > }
    >
    > function lm()
    > {
    > //I know this can be shorter but the original script
    > //tried to format the outputstring, wichh did not
    > //work in Mozilla, so I commented a lot out
    > //and this is what's left of it...
    > var s = document.lastMo dified;
    > return s;
    > }
    >
    > function lmstring()
    > {
    > var s = "This page was last modified at: ";
    > s += lm();
    > s += ".";
    > return s;
    > }
    >
    > <html>
    >
    > ..
    >
    > <script type="text/JavaScript">
    > <!--
    > wr(lmstring());
    > // -->
    > </script>
    >
    > ...
    > </html>
    >
    > This _should_ return the date and time the document was last modified
    > (saved), however in Mozilla (1.4; Windows ME) it will return the
    > actual current date and time (as if I'd used "new Date()").
    > In IE (5.50) it behaves as I expect.
    >
    > What am I doing wrong (or is it a Mozilla bug ???).
    >
    > (The script is in an external .js file, if that should make any
    > difference)
    > --
    > Bart Broersma
    > broersma.juda_A NTISPAM_@tiscal i.nl
    > (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)[/color]

    --
    ******** (enlever/remove [OTER_MOI] du/from reply url) *******
    Stéphane MORIAUX : mailto:stephane OTER_MOImoriaux @wanadoo.fr
    Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)

    *************** *************** *************** *************** **

    Comment

    • Bart

      #3
      Re: Problem with document.lastMo dified in Mozilla

      On Mon, 02 Feb 2004 17:34:38 +0100 "@SM" wrote:
      <stephanemorOTE Z_MOIiaux@wanad oo.fr>:

      [color=blue]
      >function wr() { document.write( lmstring()); }[/color]
      Actually I use the wr() function in all my pages instead of
      document.write, so this won't solve anything for me.[color=blue]
      >
      >[/color]

      I think you misunderstood my question.
      As fa as I can trace, document.lastMo dified does not return the date
      the document was last modified, but the actual current date & time...

      Bart
      --
      Bart Broersma
      broersma.juda_A NTISPAM_@tiscal i.nl
      (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)

      Comment

      • Bart

        #4
        Problem with document.lastMo dified in Mozilla (Revisited...)

        Op Sun, 01 Feb 2004 18:30:26 +0100 schreef Bart
        <broersma.juda_ ANTISPAM_@tisca li.nl>:

        Just tested this (Mozilla 1.4 on Windows ME)

        <script type="text/JavaScript">
        <!--
        document.write( document.lastMo dified);
        // -->
        </script>

        This will return the actual time and date of my computer clock, _NOT_,
        as one should ecxpect, the date & time the document was last modified.

        (saved the HTML opened in browser: gave me "february 02, 18:36";
        then changed computer clock to december 2nd 2004, reloaded the page
        and it gave me "december 02, 2004 18:36" ....)

        Netscape 6.0 behaves correctly on the same script...

        Can anyone reproduce this ????

        Bart
        --
        Bart Broersma
        broersma.juda_A NTISPAM_@tiscal i.nl
        (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)

        Comment

        • Richard Cornford

          #5
          Re: Problem with document.lastMo dified in Mozilla (Revisited...)

          "Bart" <broersma.juda_ ANTISPAM_@tisca li.nl> wrote in message
          news:sm2t10h552 f96aoqsfvo85lf0 nqdeu56lq@4ax.c om...
          <snip>[color=blue]
          >This will return the actual time and date of my computer
          >clock, _NOT_, as one should ecxpect, the date & time the
          >document was last modified.[/color]
          <snip>[color=blue]
          > Can anyone reproduce this ????[/color]

          The browser gets its last modified date from the HTTP headers sent with
          the HTML when it is downloaded, and only if the server sends that
          information. When testing from the file system there are no HTTP
          headers, IE may know how to get the information from the (Microsoft) OS;
          Mozilla may not (or care to try).

          If you want to see if the problem is reproducible you will have to go
          into more details on the context. Perhaps a URL to a test file on a
          server somewhere.

          Richard.


          Comment

          • Dr John Stockton

            #6
            Re: Problem with document.lastMo dified in Mozilla

            JRS: In article <o4dq109u0ugpjc 9j2hbv0bj8pvm4b jqe1t@4ax.com>, seen in
            news:comp.lang. javascript, Bart <broersma.juda_ ANTISPAM_@tisca li.nl>
            posted at Sun, 1 Feb 2004 18:30:26 :-[color=blue]
            >
            >This _should_ return the date and time the document was last modified
            >(saved), however in Mozilla (1.4; Windows ME) it will return the
            >actual current date and time (as if I'd used "new Date()").
            >In IE (5.50) it behaves as I expect.
            >
            >What am I doing wrong (or is it a Mozilla bug ???).[/color]

            For testing, and even more so for getting advice, throw all that code
            away. It wastes our time.

            document.write( '"', document.lastMo dified, '"')

            can be understood immediately, and shows exactly what the string
            contains.

            By reading the FAQ, you could have found
            <URL:http://www.merlyn.demo n.co.uk/js-date3.htm#lM>, q.v.


            You do not say whether you are accessing the file as a file on your
            local disc, as a Web page but from a server on your computer, or as a
            Web page from a remote server.



            The HTTP header line Last-Modified is well-specified; and I suspect
            that, where implemented, it is correctly implemented.

            But the javascript document.lastMo dified string appears to be totally
            unspecified, or differently specified in different DOMs. If it is to be
            correctly interpreted by all browsers, world-wide, it must be carefully
            treated.

            The reliable, sensible, economical easy approach is to write the date,
            in an international standard form, in HTML on the page, and to update it
            when you edit the page significantly. Like I do.


            Consider

            if (new Date() - (D = new Date(document.l astModified)) > 3e4)
            LMdisplay(docum ent.lastModifie d)

            Remember that the string may be GMT.

            --
            © John Stockton, Surrey, UK. ?@merlyn.demon. co.uk Turnpike v4.00 IE 4 ©
            <URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang. javascript
            <URL:http://www.merlyn.demo n.co.uk/js-index.htm> jscr maths, dates, sources.
            <URL:http://www.merlyn.demo n.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.

            Comment

            • @SM

              #7
              Re: Problem with document.lastMo dified in Mozilla

              Bart a ecrit :[color=blue]
              >
              > On Mon, 02 Feb 2004 17:34:38 +0100 "@SM" wrote:
              > <stephanemorOTE Z_MOIiaux@wanad oo.fr>:
              >
              > As fa as I can trace, document.lastMo dified does not return the date
              > the document was last modified, but the actual current date & time...[/color]

              If document is not on a server your experencies are of no interest.

              On My Mac IE and NC doesn't give same date/hour.

              Of course, I didn't try playing with the computer clock !
              Some secondes or minutes of waiting is enough to see it is realy
              a last time modified, even if the time is false ...

              --
              ******** (enlever/remove [OTER_MOI] du/from reply url) *******
              Stéphane MORIAUX : mailto:stephane OTER_MOImoriaux @wanadoo.fr
              Aide aux Pages Perso (images & couleurs, formulaire, CHP, JS)

              *************** *************** *************** *************** **

              Comment

              • Bart

                #8
                Re: Problem with document.lastMo dified in Mozilla (Revisited...)

                Op Mon, 2 Feb 2004 18:37:06 -0000 schreef "Richard Cornford"
                <Richard@litote s.demon.co.uk>:
                [color=blue]
                >"Bart" <broersma.juda_ ANTISPAM_@tisca li.nl> wrote in message
                >news:sm2t10h55 2f96aoqsfvo85lf 0nqdeu56lq@4ax. com...
                ><snip>[color=green]
                >>This will return the actual time and date of my computer
                >>clock, _NOT_, as one should ecxpect, the date & time the
                >>document was last modified.[/color]
                ><snip>[color=green]
                >> Can anyone reproduce this ????[/color]
                >
                >The browser gets its last modified date from the HTTP headers sent with
                >the HTML when it is downloaded, and only if the server sends that
                >information. When testing from the file system there are no HTTP
                >headers, IE may know how to get the information from the (Microsoft) OS;
                >Mozilla may not (or care to try).
                >
                >If you want to see if the problem is reproducible you will have to go
                >into more details on the context. Perhaps a URL to a test file on a
                >server somewhere.
                >
                >Richard.
                >[/color]

                The behaviour is the same on a server (my homepage) or on my local
                computer.
                I recently tested the same page in Mozilla 1.2.1 and it behaved
                normally. (I seem to remeber that Mozilla 1.3 also behaved as I
                expected, since I tested all my pages under Mozilla 1.3, before
                upgrading to 1.4).

                This seems odd...

                Thanx anyway !

                Bart

                --
                Bart Broersma
                broersma.juda_A NTISPAM_@tiscal i.nl
                (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)

                Comment

                • Bart

                  #9
                  Re: Problem with document.lastMo dified in Mozilla

                  Op Mon, 02 Feb 2004 22:10:17 +0100 schreef "@SM"
                  <stephanemorOTE Z_MOIiaux@wanad oo.fr>:

                  [color=blue]
                  >If document is not on a server your experencies are of no interest.[/color]

                  Checked it. You're right (that is today, yesterday I checked and it
                  wasn't. Same file, same Browser). Then again, it's always nice to
                  blame Bill if my computer behaves badly ;-)


                  However Mozilla 1.2.1 did this allright.
                  The site I'm working on will be a gift to some friends, and will be on
                  a CDROM.
                  (Anyhow most of them use IE, and they will see the proper date. It's
                  just that I prefer Mozilla, and it would be nice to show the date of
                  last modification in Mozilla as well...)

                  Thanks!

                  Bart

                  --
                  Bart Broersma
                  broersma.juda_A NTISPAM_@tiscal i.nl
                  (ff _ANTISPAM_ wegpoetsen uit dit adres natuurlijk)

                  Comment

                  • rgee_f

                    #10
                    Re: Problem with document.lastMo dified in Mozilla

                    Bart <broersma.juda_ ANTISPAM_@tisca li.nl> wrote in message news:<rul220h72 3taf6s553cm2o78 gk4pntjucm@4ax. com>...[color=blue]
                    > Op Mon, 02 Feb 2004 22:10:17 +0100 schreef "@SM"
                    > <stephanemorOTE Z_MOIiaux@wanad oo.fr>:
                    >
                    >[color=green]
                    > >If document is not on a server your experencies are of no interest.[/color]
                    >
                    > Checked it. You're right (that is today, yesterday I checked and it
                    > wasn't. Same file, same Browser). Then again, it's always nice to
                    > blame Bill if my computer behaves badly ;-)
                    >
                    >
                    > However Mozilla 1.2.1 did this allright.
                    > The site I'm working on will be a gift to some friends, and will be on
                    > a CDROM.
                    > (Anyhow most of them use IE, and they will see the proper date. It's
                    > just that I prefer Mozilla, and it would be nice to show the date of
                    > last modification in Mozilla as well...)
                    >
                    > Thanks!
                    >
                    > Bart[/color]


                    Bart:

                    I have run into this problem where the page is displaying the current
                    time...this is driving me nuts. I read your thread and it looks like
                    you solved it but am unclear as to how this was done.

                    I have an external file that looks like this:

                    var day = new Array
                    ("Sunday",
                    "Monday",
                    "Tuesday",
                    "Wednesday" ,
                    "Thursday",
                    "Friday",
                    "Saturday") ;

                    var mon = new Array
                    ("January",
                    "February",
                    "March",
                    "April",
                    "May",
                    "June",
                    "July",
                    "August",
                    "September" ,
                    "October",
                    "November",
                    "December") ;

                    var now = new Date();
                    var last_mod = new Date(document.l astModified);
                    var mod_month = mon[now.getMonth()];
                    var mod_date = last_mod.getDat e();
                    var mod_hour = last_mod.getHou rs();
                    var mod_minute = last_mod.getMin utes();
                    var mod_second = last_mod.getSec onds();
                    var mod_year = last_mod.getYea r();
                    if (mod_year < 2000) {
                    var mod_year = mod_year + 1900 //because netscape does not evaluate
                    date properly
                    }

                    My html page looks like this:
                    <html>
                    <head>
                    <script src="my_lastMod Date.js" type="text/javascript">
                    </script>
                    <title>
                    </title>
                    </head>
                    <body>
                    blah, blah, and more blah...
                    <SCRIPT TYPE="TEXT/JAVASCRIPT">
                    <!-- Hide

                    document.write ("Last modified on: <br>");
                    document.write (mod_month + " " + mod_date + "\, " + mod_year);
                    document.write( " " + mod_hour + ":" + mod_minute + ":" +
                    mod_second);

                    -->
                    </SCRIPT>

                    </body>
                    </html>

                    TIA,
                    rgee_f

                    Comment

                    • Dr John Stockton

                      #11
                      Re: Problem with document.lastMo dified in Mozilla

                      JRS: In article <bc84d542.04020 51247.19f94b19@ posting.google. com>, seen
                      in news:comp.lang. javascript, rgee_f <neprouto8w@jet able.org> posted at
                      Thu, 5 Feb 2004 12:47:22 :-[color=blue]
                      >
                      >I have run into this problem where the page is displaying the current
                      >time...this is driving me nuts.[/color]



                      Showing all that code is largely pointless - the prime question is "what
                      does the lastModified string itself hold?".

                      If it holds some version of the current date/time, even in FFF, then one
                      cannot hope to re-interpret it as anything else.

                      If it holds a date/time equivalent to 1970-01-01 00:00:00 GMT, even in
                      FFF, then one cannot hope to re-interpret it as anything else.

                      If it holds a date/time which is reasonable for a Web page, i.e. after
                      TB-L's invention but appreciably before current, even in FFF, then one
                      can hope to re-interpret it as a respectable representation of that.

                      The re-interpretation code can, and should, be tested independently, on
                      other date strings of expected formats,



                      BTW, what happens with pages generated dynamically on the server - do
                      they have a Last-Modified header representing the instant of generation,
                      or something else, or not?

                      --
                      © John Stockton, Surrey, UK. ?@merlyn.demon. co.uk Turnpike v4.00 IE 4 ©
                      <URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang. javascript
                      <URL:http://www.merlyn.demo n.co.uk/js-index.htm> jscr maths, dates, sources.
                      <URL:http://www.merlyn.demo n.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.

                      Comment

                      • rgee_f

                        #12
                        Re: Problem with document.lastMo dified in Mozilla

                        Dr John Stockton <spam@merlyn.de mon.co.uk> wrote in message news:<v15nBYRvJ 4IAFwd+@merlyn. demon.co.uk>...[color=blue]
                        > JRS: In article <bc84d542.04020 51247.19f94b19@ posting.google. com>, seen
                        > in news:comp.lang. javascript, rgee_f <neprouto8w@jet able.org> posted at
                        > Thu, 5 Feb 2004 12:47:22 :-[color=green]
                        > >
                        > >I have run into this problem where the page is displaying the current
                        > >time...this is driving me nuts.[/color]
                        >
                        >
                        >
                        > Showing all that code is largely pointless - the prime question is "what
                        > does the lastModified string itself hold?".
                        >
                        > If it holds some version of the current date/time, even in FFF, then one
                        > cannot hope to re-interpret it as anything else.
                        >
                        > If it holds a date/time equivalent to 1970-01-01 00:00:00 GMT, even in
                        > FFF, then one cannot hope to re-interpret it as anything else.
                        >
                        > If it holds a date/time which is reasonable for a Web page, i.e. after
                        > TB-L's invention but appreciably before current, even in FFF, then one
                        > can hope to re-interpret it as a respectable representation of that.
                        >
                        > The re-interpretation code can, and should, be tested independently, on
                        > other date strings of expected formats,
                        >
                        >
                        >
                        > BTW, what happens with pages generated dynamically on the server - do
                        > they have a Last-Modified header representing the instant of generation,
                        > or something else, or not?[/color]


                        John:

                        Thanks for the reply. As far as I can tell the lastModified string is
                        hoding current and time. I am sorry but I really feel stupid because
                        I really do not quite understand your three above 'if'
                        statements...Wh en I run my lastModified code and press the reload
                        button I can see the seconds ticking away. If I leave the page alone
                        for a day it will display the current date and time. I went to your
                        page and am still unclear if this is a coding problem or a server
                        problem, in that the server is not sending HTTP header data back to
                        the browser...

                        TIA.
                        rgee_f

                        Comment

                        • Dr John Stockton

                          #13
                          Re: Problem with document.lastMo dified in Mozilla

                          JRS: In article <bc84d542.04020 90855.68f00b36@ posting.google. com>, seen
                          in news:comp.lang. javascript, rgee_f <neprouto8w@jet able.org> posted at
                          Mon, 9 Feb 2004 08:55:09 :-
                          [color=blue]
                          >Thanks for the reply. As far as I can tell the lastModified string is
                          >hoding current and time. I am sorry but I really feel stupid because
                          >I really do not quite understand your three above 'if'
                          >statements...W hen I run my lastModified code and press the reload
                          >button I can see the seconds ticking away. If I leave the page alone
                          >for a day it will display the current date and time. I went to your
                          >page and am still unclear if this is a coding problem or a server
                          >problem, in that the server is not sending HTTP header data back to
                          >the browser...[/color]


                          A confusing report.

                          What you need to do is to put the following code on your server at a
                          known time of day, wait for at least a few times as long as the largest
                          possible difference between server time and real time, then fetch the
                          page and show us the exact result, the time of upload, and the time of
                          fetch.

                          You need also to say, unless looking at the result tells you all you
                          need to know, how your own local time differs from GMT; and, in case
                          your server is wrongly configured, it could be useful to know server's
                          local time difference from GMT. Always give locality information in any
                          case where it may matter.

                          <script>
                          document.write( 'Result: "', document.lastMo dified, '"')
                          </script>

                          Using my test page locally, I get Result: "02/09/04 19:53:54" which
                          is, in American, exactly when the page was changed.

                          I expect that the string will always represent a GMT time, and that it
                          may contain the letters GMT.

                          You may get the time of upload by the server clock, the time of fetch by
                          your computer's clock, "0", "", or something unpredictable (I don't
                          expect "0" or "", if I understand you correctly.

                          There is NO POINT in examining this string with any more code until the
                          string itself is understood.


                          You could, of course, also tell us all the URL of the page, so that we
                          can look at it.


                          IIRC, you can check the page with http://malch.elsop.com/quick.cgi -
                          IIRC, the full report includes the headers, and may show a Last
                          Modified: line.

                          --
                          © John Stockton, Surrey, UK. ?@merlyn.demon. co.uk Turnpike v4.00 IE 4 ©
                          <URL:http://jibbering.com/faq/> Jim Ley's FAQ for news:comp.lang. javascript
                          <URL:http://www.merlyn.demo n.co.uk/js-index.htm> jscr maths, dates, sources.
                          <URL:http://www.merlyn.demo n.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.

                          Comment

                          Working...