Y2K problem with script?

Discussion in 'Javascript' started by none@of.your.biz.nes, Sep 29, 2005.

  1. Guest

    Below is an old count-up script that displays ok in MSIE with a bit of
    experimenting, but NS shows negative values that make no sense. Anyone
    know how to make it work ok in both?

    === Cut ===
    <script language=JavaScript>
    /*
    Date Count-up 1.0
    (C) Copyright 1996 Ben Harold
    All rights Reserved
    Feel free to use this script in your page under the folling
    conditions :
    1. Do not modify this script in any way (besides
    following the
    configuration directions) without my consent
    2. Mail me at if you use it
    3. I am not held responsible for any thing that this
    script may
    do to your computer
    */

    // Configuration Directions
    // Don't change this
    // This makes a date variable that is used to get the current date

    today = new Date()

    // Don't change these

    // These get the current year, month, and date

    var thisyear = today.getYear()
    var thismonth = today.getMonth()
    var thisdate = today.getDate()

    // Change these
    // These set the year, month, and date to count from
    // NOTICE : var thatmonth should be a number between 0 and 11, not 1
    and 12

    var thatyear = 1995
    var thatmonth = 10
    var thatdate = 15

    // Change this
    // This is what the browser will display just before the years, months,
    and dates
    // NOTICE : make sure that there is a space after the last word of var
    prestring

    var prestring = " "

    // Don't change these
    // These set variables used by other parts of the script

    var fromyears = (thisyear - thatyear)
    var datenumber = (thisdate + thatdate)

    // Don' change this
    // This figures out how many days there are in the current month

    if (thismonth == 0)
    monthdates = (31)
    else if (thismonth == 1)
    monthdates = (28)
    else if (thismonth == 2)
    monthdates = (31)
    else if (thismonth == 3)
    monthdates = (30)
    else if (thismonth == 4)
    monthdates = (31)
    else if (thismonth == 5)
    monthdates = (30)
    else if (thismonth == 6)
    monthdates = (31)
    else if (thismonth == 7)
    monthdates = (31)
    else if (thismonth == 8)
    monthdates = (30)
    else if (thismonth == 9)
    monthdates = (31)
    else if (thismonth == 10)
    monthdates = (30)
    else if (thismonth == 11)
    monthdates = (31)

    // Don't change this
    // This figures out how many years it has been since thatyear

    if (fromyears == 0)
    yearssince = (prestring)

    else if (fromyears == 1)
    yearssince = (prestring + " year")

    else yearssince = (prestring + fromyears + " years")

    // Don't change this
    // This figures out how many dates it has been since thatdate

    if (thisdate > thatdate)
    predatessince = (thisdate - thatdate)
    else predatessince = (thisdate + monthdates - thatdate)
    if (predatessince == 0)
    datessince = ("no days.")
    else if (predatessince == 1)
    datessince = ("1 day.")
    else datessince = (predatessince + " days.")

    // Don't change this
    // This figures out how many months it has been since thatmonth

    if (thisyear > thatyear) {
    if (thismonth >= thatmonth)
    premonthssince = (thismonth -
    thatmonth)
    else premonthssince = (12 + thismonth -
    thatmonth)
    }

    else premonthssince = (thismonth - thatmonth)

    if (monthdates < datenumber)
    premonthssincetwo = (premonthssince + 1)
    else premonthssincetwo = (premonthssince)
    if (premonthssincetwo == 0)
    monthssince = (" ")
    else if (premonthssincetwo == 1)
    monthssince = ("1 month")
    else monthssince = (premonthssincetwo +
    "months")

    // Don't change these
    // These figure out what type of punctuation to use in the final
    message

    if (yearssince == prestring)
    commaone = (" ")
    else {
    if (monthssince == " ")
    (commaone = " and ")
    else commaone = (", ")
    }

    if (commaone == " and ")
    commatwo = (" ")
    else if (commaone == ", ")
    commatwo = (" and ")
    else if (yearssince == prestring) {
    if (monthssince == " ")
    (commatwo = " ")
    else commatwo = (" and ")
    }

    // Don't change this
    // This assembles the final message

    var finalstring = ""
    finalstring += (yearssince)
    finalstring += (commaone)
    finalstring += (monthssince)
    finalstring += (commatwo)
    finalstring += (datessince)

    // Don't change this
    // This prints the final message to the browser screen

    document.write(finalstring)
    </script>
    === Cut ===


    Kari Suomela

    KARICO Business Services
    Toronto, ON Canada
    http://www.karico.ca

    .... Never straighten a good waistline.


    ----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
    http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
    ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
     
    , Sep 29, 2005
    #1
    1. Advertising

  2. Lee Guest

    said:

    >// Don't change these
    >
    >// These get the current year, month, and date
    >
    > var thisyear = today.getYear()


    Change that to:

    var thisyear = today.getFullYear();
     
    Lee, Sep 30, 2005
    #2
    1. Advertising

  3. RobG Guest

    wrote:
    > Below is an old count-up script that displays ok in MSIE with a bit of
    > experimenting, but NS shows negative values that make no sense. Anyone
    > know how to make it work ok in both?


    There have been two threads in the last few days on this, search for
    getFullYear and sort by date.

    "Date problem in Opera"
    <URL:http://groups.google.co.uk/group/comp.lang.javascript/browse_frm/thread/3fad1afb8207408b/5ff2ae7a62b8b319?q=getFullYear&rnum=1&hl=en#5ff2ae7a62b8b319>

    "Who's fault: different displays of date"
    <URL:http://groups.google.co.uk/group/comp.lang.javascript/browse_frm/thread/eff514c740a32ae2/a5e8b6192b35b610?q=getFullYear&rnum=2&hl=en#a5e8b6192b35b610>


    [...]

    > // These get the current year, month, and date
    >
    > var thisyear = today.getYear()


    Here's your problem ----------^^^^^^^

    Use getFullYear(), but be aware that very old browsers will only support
    getYear().

    That caveat is added because if a date function misbehaves for any
    reason, a visitor's confidence in your site is shaken - even a very
    small number of failures may be unacceptable.

    [...]

    --
    Rob
     
    RobG, Sep 30, 2005
    #3
  4. Guest

    Thursday September 29 2005 16:10, Lee wrote to All:

    >> var thisyear = today.getYear()


    L> Change that to:

    L> var thisyear = today.getFullYear();

    Thanks to all who replied. Works ok now.


    KS

    KARICO Business Services
    Toronto, ON Canada
    http://www.karico.ca

    .... Sound and fury, signifying nothing.


    ----== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==----
    http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
    ----= East and West-Coast Server Farms - Total Privacy via Encryption =----
     
    , Sep 30, 2005
    #4
  5. JRS: In article <>, dated
    Thu, 29 Sep 2005 18:47:19, seen in news:comp.lang.javascript,
    <> posted :

    >Below is an old count-up script that displays ok in MSIE with a bit of
    >experimenting, but NS shows negative values that make no sense. Anyone
    >know how to make it work ok in both?


    DO NOT just change getYear to getFullYear; the code would be rubbish
    even if it were not bloated, though the results may be correct most of
    the time (I don't see allowance for Leap Years).

    Code posted to News should be executable as is, which means that it
    should not be wrapped by the posting process.

    Read the newsgroup FAQ; see below.

    --
    © John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
    <URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
    <URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
    <URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
     
    Dr John Stockton, Sep 30, 2005
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Cédric Rossé
    Replies:
    1
    Views:
    532
    Cédric Rossé
    Nov 9, 2004
  2. Rajat
    Replies:
    3
    Views:
    705
    Jorgen Grahn
    Jan 8, 2010
  3. VYAS ASHISH M-NTB837
    Replies:
    2
    Views:
    565
    Jan Kaliszewski
    Jan 7, 2010
  4. McKirahan

    Y2K? Never heard of it...

    McKirahan, Dec 27, 2004, in forum: Javascript
    Replies:
    7
    Views:
    106
    Douglas Crockford
    Dec 30, 2004
  5. PerlFAQ Server
    Replies:
    0
    Views:
    393
    PerlFAQ Server
    Jan 6, 2011
Loading...

Share This Page