Solved

Javascript date/time adding/subtracting

Posted on 2009-05-19
2
1,163 Views
Last Modified: 2012-05-07
I know this has been posted before, but I can't seem to find it.  I am doing some adding and subtracting of dates and need to display them on the screen in an HTML format.  If, for example, I have the date

02/03/09 3:15 a.m. and need to subtract 5 hours from it (the number of hours will vary), how can I do this and make sure the date/time are truly a real date and time in the past?
0
Comment
Question by:saturation
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 41

Expert Comment

by:HonorGod
ID: 24425713
In JavaScript, there is a wonderful thing called a Date object.
You can instantiate it and provide a specific date/time.

For example:

  var when = new Date( '02/03/09 3:15 am' )

This datatype has many methods that can be used for extracting different parts of the date.

For example:



<html>
<body>
 
<script type="text/javascript">
 
var when = new Date( '02/03/09 3:15 am' )
 
function D2( val ) {
  return ( val < 10 ) ? '0' + val : val
}
  
document.write( D2( when.getMonth() + 1 ) + '/' +
                D2( when.getDate() ) + '/' + 
                D2( when.getYear() ) + '<br>'
              )
 
document.write( when + '<br>' )
 
var before = when
before.setHours( before.getHours() - 5 )
 
document.write( D2( before.getMonth() + 1 ) + '/' +
                D2( before.getDate() ) + '/' + 
                D2( before.getYear() ) + '<br>'
              )
              
document.write( before + '<br>' )
 
</script>
 
</body>
</html>

Open in new window

1
 
LVL 40

Accepted Solution

by:
Richard Quadling earned 500 total points
ID: 24425760
Javascript dates are held as whole days with the decimal part being in milliseconds.1 day = 86 400 000 millisecondsSo, 5 hours = 5 * 60 * 60 * 1000
<html>
<head>
<title>Demo date</title>
<script type="text/javascript">
var o_Date = new Date();
 
alert(o_Date);
 
o_Date.setTime(o_Date - 5 * 60 * 60 * 1000);
 
alert(o_Date);
</script>
</head>
</html>

Open in new window

0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

JavaScript can be used in a browser to change parts of a webpage dynamically. It begins with the following pattern: If condition W is true, do thing X to target Y after event Z. Below are some tips and tricks to help you get started with JavaScript …
This article demonstrates how to create a simple responsive confirmation dialog with Ok and Cancel buttons using HTML, CSS, jQuery and Promises
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question