Changes

JavaScript Date Object

48 bytes added, 14:53, 15 April 2009
no edit summary
The JavaScript Date object enables you to work with, and manipluate manipulate time (and no, it doesn't enable you to travel back through time to buy a lottery ticket with this week's winning numbers - if it did that I would have already done it, and would be sitting on beach somewhere instead of writing this book).
The Date object enables the JavaScript developer to create a Date object initialized to a specific time and date, or to create a date object that reflects the current ''system time'' on the computer on which the browser is running. There are two important things to note when working with the JavaScript Date object. Firstly, when reading the date and time of the user's computer you are completely at the mercy of the user's ability to set and maintain the correct day and time on their computer. Secondly, whilst you can read the system date and time set on the user's computer, and change those settings within your Date object instance, you ''cannot'' change the computer's system date and time. No matter what methods you call or properties you change on your Date object, the user's system date and time remain unaltered.
== Understanding System Time ==
Rather than understanding the concepts of dates and times, computers essentially record the passage of time since a particular baseline date and time (often referred to as the ''epoch''). The epoch date, and unit of measurement for elapsed time depends on the system being used. A Windows system, for example, counts the number of 100-nanoseconds since January 1, 1601 00:00:00. A UNIX or LINUX based system, on the other hand, counts the number of seconds that have elapsed since January 1, 1970 00:00:00.
When working with JavaScript it is useful to know that when the current date is requested it is returned as the number of milliseconds that have elapsed since January 1, 1970, 00:00:00. As you will see later in this chapter, the JavaScript Date object contains plenty of methods that make it easy for developers to set and read the time using human readable date formats.
== Creating a JavaScript Date Object ==
A javaScript JavaScript Date Object is created much like any other object in JavaScript, using the ''new'' keyword and some optional arguments (for an overview of Objects in JavaScript see [[JavaScript Object Basics]]). The syntax for creating an instance of a Date object is as follows:
var myDate = new Date(''Optional Parameters'');
The following table shows the different parameter options that are accpted accepted by the Date object at Create create time:
<table border="1" spacing=0">
</pre>
When executed, the above example would return a value similar to 1182356520000 which doesn't mean an awful lot to a human being. Another methods is to read each of the individual Date properties using the getDate(), getMonth(), getFullYear(), getHours(), getMinutes(), getSeconds() methods:
<pre>
=== UTC Time ===
''Coordinated Universal Time'' (UTC) is the equavalent equivalent to ''Greenwich Mean Time'' (GMT). Using the ''toUTCString()'' method of the JavaScript Date Object will return to you the current UTC date and time. Supposing the visitor to your web page is in the United States in Eastern Standard Time (EST) and the local time is 12:00pm and the script on your web page performs the following:
<pre>
</pre>
When executed, you should expect to see the following text appear because 12:00 EST is really 16:00 UTC.
Current (UTC) Time is Wed, 20 Jun 2007 16:00:00 GMT
=== Finding the Time Zone Offset and Getting Local Time ===
It is often useful to be able to find out the time zone offset (meaning the number of hours ahead or behind UTC) of a web site visitor. JavaScript provides the ''getTimezoneOffset()'' method which, as the name suggests, returns the number of minutes difference between the client (i.e . where the browser is being run) and UTC:
<pre>
</pre>
If the visitor to your web site used Eastern Standard Time then the above would report the time offset as 240 minutes. You can, ofcourseof course, convert this to hours simply by dividing by 60. The following displays the time offiset offset as 4 hours:
<pre>
</pre>
The local time of the system on which the browser is running can be obtained using the ''toLocaleString()'' method of the JavaScript Date Object. This method returns a string correct for the lcoal local time zone. Assuming, once again, a visitor located on the East coast of the United States and the following the following script fragment:
<pre>