Parsing a string to a date in JavaScript
The best string format for string parsing is the date ISO format together with the JavaScript Date object constructor.
Examples of ISO format: YYYY-MM-DD
or YYYY-MM-DDTHH:MM:SS
.
But wait! Just using the "ISO format" doesn't work reliably by itself. String are sometimes parsed as UTC and sometimes as localtime (based on browser vendor and version). The best practice should always be to store dates as UTC and make computations as UTC.
To parse a date as UTC, append a Z - e.g.: new Date('2011-04-11T10:20:30Z')
.
To display a date in UTC, use .toUTCString()
,
to display a date in user's local time, use .toString()
.
More info on MDN | Date and this answer.
For old Internet Explorer compatibility (IE versions less than 9 do not support ISO format in Date constructor), you should split datetime string representation to it's parts and then you can use constructor using datetime parts, e.g.: new Date('2011', '04' - 1, '11', '11', '51', '00')
. Note that the number of the month must be 1 less.
Alternate method - use an appropriate library:
You can also take advantage of the library Moment.js that allows parsing date with the specified time zone.
How do I format a date in JavaScript?
For custom-delimited date formats, you have to pull out the date (or time)
components from a DateTimeFormat
object (which is part of the
ECMAScript Internationalization API), and then manually create a string
with the delimiters you want.
To do this, you can use DateTimeFormat#formatToParts
. You could
destructure the array, but that is not ideal, as the array output depends on the
locale:
{ // example 1
let f = new Intl.DateTimeFormat('en');
let a = f.formatToParts();
console.log(a);
}
{ // example 2
let f = new Intl.DateTimeFormat('hi');
let a = f.formatToParts();
console.log(a);
}
Format a date string in javascript
Use Moment.js and the .format
function.
moment('2017-06-10T16:08:00').format('MM/DD/YYYY');
Will output
06/10/2017
Beside the format
function Moment.js will enrich you will alot more useful functions.
Get String in YYYYMMDD format from JS date object?
Altered piece of code I often use:
Date.prototype.yyyymmdd = function() {
var mm = this.getMonth() + 1; // getMonth() is zero-based
var dd = this.getDate();
return [this.getFullYear(),
(mm>9 ? '' : '0') + mm,
(dd>9 ? '' : '0') + dd
].join('');
};
var date = new Date();
date.yyyymmdd();
Convert string to date format in JavaScript
You can use toLocaleDateString
with an argument that specifies a locale for which your format is used. For instance, the Swedisch locale uses the YYYY-MM-DD format:
var date = '2/3/2022 17:57:30'
var temp = new Date(date).toLocaleDateString("se");
console.log(temp);
Format JavaScript date as yyyy-mm-dd
You can do:
function formatDate(date) {
var d = new Date(date),
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [year, month, day].join('-');
}
console.log(formatDate('Sun May 11,2014'));
How to convert a javascript date string to another format?
You can try
var date = "26-08-2016";
var newdate = date.split("-").reverse().join("-");
Input : 26-08-2016
Output : 2016-08-26
Related Topics
How to Sequentially Run Promises with Q in JavaScript
Storing Image Data for Offline Web Application (Client-Side Storage Database)
Bootstrap 4 Multiselect Dropdown
Addeventlistener for Keydown on Canvas
Javascript/HTML Storage Options Under File Protocol (File://)
What Does Three Dots Do in Reactjs
How to Limit Panning in Google Maps API V3
How to Copy Text from a Div to Clipboard
Limited Parallelism with Async/Await in Typescript/Es7
Array.Push() If Does Not Exist
Save a Pre Element as PDF with CSS
".Addeventlistener Is Not a Function" Why Does This Error Occur