Javascript new date explorer

Date() constructor

The Date() constructor creates Date objects. When called as a function, it returns a string representing the current time.

Try it

Syntax

new Date() new Date(value) new Date(dateString) new Date(dateObject) new Date(year, monthIndex) new Date(year, monthIndex, day) new Date(year, monthIndex, day, hours) new Date(year, monthIndex, day, hours, minutes) new Date(year, monthIndex, day, hours, minutes, seconds) new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds) Date() 

Note: Date() can be called with or without new , but with different effects. See Return value.

Parameters

There are five basic forms for the Date() constructor:

No parameters

When no parameters are provided, the newly-created Date object represents the current date and time as of the time of instantiation. The returned date’s timestamp is the same as the number returned by Date.now() .

Time value or timestamp number

An integer value representing the timestamp (the number of milliseconds since midnight at the beginning of January 1, 1970, UTC — a.k.a. the epoch).

Date string

A string value representing a date, parsed and interpreted using the same algorithm implemented by Date.parse() . See date time string format for caveats on using different formats.

Читайте также:  Как получить код символа java

Date object

An existing Date object. This effectively makes a copy of the existing Date object with the same date and time. This is equivalent to new Date(dateObject.valueOf()) , except the valueOf() method is not called.

When one parameter is passed to the Date() constructor, Date instances are specially treated. All other values are converted to primitives. If the result is a string, it will be parsed as a date string. Otherwise, the resulting primitive is further coerced to a number and treated as a timestamp.

Individual date and time component values

Given at least a year and month, this form of Date() returns a Date object whose component values (year, month, day, hour, minute, second, and millisecond) all come from the following parameters. Any missing fields are given the lowest possible value ( 1 for day and 0 for every other component). The parameter values are all evaluated against the local time zone, rather than UTC. Date.UTC() accepts similar parameters but interprets the components as UTC and returns a timestamp.

If any parameter overflows its defined bounds, it «carries over». For example, if a monthIndex greater than 11 is passed in, those months will cause the year to increment; if a minutes greater than 59 is passed in, hours will increment accordingly, etc. Therefore, new Date(1990, 12, 1) will return January 1st, 1991; new Date(2020, 5, 19, 25, 65) will return 2:05 A.M. June 20th, 2020.

Similarly, if any parameter underflows, it «borrows» from the higher positions. For example, new Date(2020, 5, 0) will return May 31st, 2020.

Integer value representing the year. Values from 0 to 99 map to the years 1900 to 1999 . All other values are the actual year. See the example.

Integer value representing the month, beginning with 0 for January to 11 for December.

Integer value representing the day of the month. Defaults to 1 .

Integer value between 0 and 23 representing the hour of the day. Defaults to 0 .

Integer value representing the minute segment of a time. Defaults to 0 .

Integer value representing the second segment of a time. Defaults to 0 .

Integer value representing the millisecond segment of a time. Defaults to 0 .

Return value

Calling new Date() (the Date() constructor) returns a Date object. If called with an invalid date string, or if the date to be constructed will have a timestamp less than -8,640,000,000,000,000 or greater than 8,640,000,000,000,000 milliseconds, it returns an invalid date (a Date object whose toString() method returns «Invalid Date» and valueOf() method returns NaN ).

Calling the Date() function (without the new keyword) returns a string representation of the current date and time, exactly as new Date().toString() does. Any arguments given in a Date() function call (without the new keyword) are ignored; regardless of whether it’s called with an invalid date string — or even called with any arbitrary object or other primitive as an argument — it always returns a string representation of the current date and time.

Examples

Several ways to create a Date object

The following examples show several ways to create JavaScript dates:

const today = new Date(); const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes const birthday = new Date("1995-12-17T03:24:00"); // This is standardized and will work reliably const birthday = new Date(1995, 11, 17); // the month is 0-indexed const birthday = new Date(1995, 11, 17, 3, 24, 0); const birthday = new Date(628021800000); // passing epoch timestamp 

Passing a non-Date, non-string, non-number value

If the Date() constructor is called with one parameter which is not a Date instance, it will be coerced to a primitive and then checked whether it’s a string. For example, new Date(undefined) is different from new Date() :

.log(new Date(undefined)); // Invalid Date 

This is because undefined is already a primitive but not a string, so it will be coerced to a number, which is NaN and therefore not a valid timestamp. On the other hand, null will be coerced to 0 .

.log(new Date(null)); // 1970-01-01T00:00:00.000Z 

Arrays would be coerced to a string via Array.prototype.toString() , which joins the elements with commas. However, the resulting string for any array with more than one element is not a valid ISO 8601 date string, so its parsing behavior would be implementation-defined. Do not pass arrays to the Date() constructor.

.log(new Date(["2020-06-19", "17:13"])); // 2020-06-19T17:13:00.000Z in Chrome, since it recognizes "2020-06-19,17:13" // "Invalid Date" in Firefox 

Specifications

Browser compatibility

BCD tables only load in the browser

See also

Found a content problem with this page?

This page was last modified on Jun 1, 2023 by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

Javascript’s Date() does not work with IE & Safari

Date() does not work with IE & Safari

Working with Date() in programming is a little tricky so in this post, we will see when the Date() does not work in IE and Safari. Also will learn how to fix it.

  • Most languages have come up with some built-in functionality to help with date function.
  • JavaScript in particular has lots of useful functions to aid in getting, setting, and outputting dates.
  • This simple basic code below works in all browsers because it simply gives the current date-time.

Now The Problem

  • When it comes to passing and calculating dates using the new Date(), the below code will not work on IE or Safari.
new Date("2020-08-26 12:29:33"); // Firefox also returns ‘Invalid Date’ whereas it works in Chrome. new Date("10-26-2020");
  • Here, IE returns ‘NaN’ and Safari returns ‘Invalid Date’ because for some reason, IE and Safari do not support this type of date format “YYYY-MM-DD”.

And the Solution

  • So the solution is to pass a valid date format to Date() Object that supports across all browsers.
  • The following are some valid date formats:
// yyyy, mm-1, dd new Date(2020, 09, 26); // yyyy, mm-1, dd, hh, mm, ss new Date(2020, 09, 26, 11, 12, 29); // "mm/dd/yyyy" new Date("10/26/2020"); // "mm/dd/yyyy hh:mm:ss" new Date("10/26/2020 12:29:29"); // milliseconds new Date(1608921000000); // "Day Month dd yyyy hh:mm:ss GMT" new Date("Sat Dec 26 2020 11:12:29 GMT");

I hope this helps you understand and fix the Date() format issue with IE and Safari.

Related Posts

Visit https://techtalkbook.com to find more related topics.

Happy Coding.

Share with others:

  • Click to share on Facebook (Opens in new window)
  • Click to share on Twitter (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to share on Skype (Opens in new window)
  • Click to share on Pinterest (Opens in new window)
  • Click to share on WhatsApp (Opens in new window)
  • Click to share on Pocket (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on Telegram (Opens in new window)
  • Click to share on Tumblr (Opens in new window)
  • Click to print (Opens in new window)
  • Click to email a link to a friend (Opens in new window)

Источник

Оцените статью