days from an event

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
User avatar
Vegan
Forum Regular
Posts: 574
Joined: Fri Sep 05, 2008 3:34 pm
Location: Victoria, BC
Contact:

days from an event

Post by Vegan »

Code: Select all

var oldevent = new date(2012, 7, 2);
var today = new date;
document.write(today-oldevent);
I am expecting days so any problems with this approach?
Hardcore Games™ Legendary is the Only Way to Play™
My site is powered by LAMP
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: days from an event

Post by califdon »

Take a look at http://www.adp-gmbh.ch/web/js/date/add_days.html

Oops, this one is closer to what you want to do: http://www.javascriptkit.com/javatutors ... ence.shtml

Unlike Microsoft, Linux/Unix datetime variables store the number of milliseconds, not the number of days.
Last edited by califdon on Wed Jul 25, 2012 6:10 pm, edited 1 time in total.
Reason: Added another link
User avatar
Vegan
Forum Regular
Posts: 574
Joined: Fri Sep 05, 2008 3:34 pm
Location: Victoria, BC
Contact:

Re: days from an event

Post by Vegan »

I guess I need to use a more conservative approach

Code: Select all

<script type="text/javascript">

//Set the two dates
var millennium =new Date(2000, 0, 1) //Month is 0-11 in JavaScript
today=new Date()
//Get 1 day in milliseconds
var one_day=1000*60*60*24

//Calculate difference btw the two dates, and convert to days
document.write(Math.ceil((today.getTime()-millennium.getTime())/(one_day))+
" days has gone by since the millennium!")

</script>
Hardcore Games™ Legendary is the Only Way to Play™
My site is powered by LAMP
User avatar
Vegan
Forum Regular
Posts: 574
Joined: Fri Sep 05, 2008 3:34 pm
Location: Victoria, BC
Contact:

Re: days from an event

Post by Vegan »

do I need to check to see if that function will work all the time, such as detect the OS in use?
Hardcore Games™ Legendary is the Only Way to Play™
My site is powered by LAMP
User avatar
califdon
Jack of Zircons
Posts: 4484
Joined: Thu Nov 09, 2006 8:30 pm
Location: California, USA

Re: days from an event

Post by califdon »

Vegan wrote:I guess I need to use a more conservative approach

Code: Select all

<script type="text/javascript">

//Set the two dates
var millennium =new Date(2000, 0, 1) //Month is 0-11 in JavaScript
today=new Date()
//Get 1 day in milliseconds
var one_day=1000*60*60*24

//Calculate difference btw the two dates, and convert to days
document.write(Math.ceil((today.getTime()-millennium.getTime())/(one_day))+
" days has gone by since the millennium!")
</script>
Are you sure you want to use Math.ceil? That rounds upward.

I did it this way, which seems to work:

Code: Select all

<script type='text/javascript'>
   var millennium = new Date(2000, 0, 1);
   var today = new Date();
   var difference_ms = today - millennium;
   var ms_in_a_day = 1000 * 60 * 60 * 24;
   var difference_days = Math.round(difference_ms / ms_in_a_day);
   document.write("Today is "+ difference_days + " days after the millennium.");
</script>
You might want to wrap it in a function, as in this example:
http://www.mcfedries.com/javascript/daysbetween.asp
do I need to check to see if that function will work all the time, such as detect the OS in use?
No, Javascript should work the same, regardless of what OS the browser is running in. If your algorithm is correct, it will work.
Post Reply