Javascript format date / time
Yes, you can use the native javascript Date() object and its methods.
For instance you can create a function like:
function formatDate(date) {
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = hours + ':' + minutes + ' ' + ampm;
return (date.getMonth()+1) + "/" + date.getDate() + "/" + date.getFullYear() + " " + strTime;
}
var d = new Date();
var e = formatDate(d);
alert(e);
And display also the am / pm and the correct time.
Remember to use getFullYear() method and not getYear() because it has been deprecated.
DEMO http://jsfiddle.net/a_incarnati/kqo10jLb/4/
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 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'));
Javascript: output current datetime in YYYY/mm/dd hh:m:sec format
You can build it manually:
var m = new Date();
var dateString = m.getUTCFullYear() +"/"+ (m.getUTCMonth()+1) +"/"+ m.getUTCDate() + " " + m.getUTCHours() + ":" + m.getUTCMinutes() + ":" + m.getUTCSeconds();
and to force two digits on the values that require it, you can use something like this:
("0000" + 5).slice(-2)
Which would look like this:
var m = new Date();var dateString = m.getUTCFullYear() + "/" + ("0" + (m.getUTCMonth()+1)).slice(-2) + "/" + ("0" + m.getUTCDate()).slice(-2) + " " + ("0" + m.getUTCHours()).slice(-2) + ":" + ("0" + m.getUTCMinutes()).slice(-2) + ":" + ("0" + m.getUTCSeconds()).slice(-2);
console.log(dateString);
Current time formatting with Javascript
A JavaScript Date has several methods allowing you to extract its parts:
getFullYear()
- Returns the 4-digit yeargetMonth()
- Returns a zero-based integer (0-11) representing the month of the year.getDate()
- Returns the day of the month (1-31).getDay()
- Returns the day of the week (0-6). 0 is Sunday, 6 is Saturday.getHours()
- Returns the hour of the day (0-23).getMinutes()
- Returns the minute (0-59).getSeconds()
- Returns the second (0-59).getMilliseconds()
- Returns the milliseconds (0-999).getTimezoneOffset()
- Returns the number of minutes between the machine local time and UTC.
There are no built-in methods allowing you to get localized strings like "Friday", "February", or "PM". You have to code that yourself. To get the string you want, you at least need to store string representations of days and months:
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
Then, put it together using the methods above:
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];var d = new Date();var day = days[d.getDay()];var hr = d.getHours();var min = d.getMinutes();if (min < 10) { min = "0" + min;}var ampm = "am";if( hr > 12 ) { hr -= 12; ampm = "pm";}var date = d.getDate();var month = months[d.getMonth()];var year = d.getFullYear();var x = document.getElementById("time");x.innerHTML = day + " " + hr + ":" + min + ampm + " " + date + " " + month + " " + year;
<span id="time"></span>
Formatting the date time with Javascript
You can do a simple string manipulation and create js date object. See function below, which accepts date in format //yyyy-mm-dd hh:mm:ss
DEMO here
function toJSDate (dateTime) {
var dateTime = dateTime.split(" ");//dateTime[0] = date, dateTime[1] = time
var date = dateTime[0].split("-");
var time = dateTime[1].split(":");
//(year, month, day, hours, minutes, seconds, milliseconds)
// mont is 0 indexed so date[1] - 1 corrected format
return new Date(date[0], date[1]-1, date[2], time[0], time[1], time[2], 0);
}
How do you format a Date/Time in TypeScript?
If you want the time out as well as the date you want Date.toLocaleString()
.
This was direct from my console:
> new Date().toLocaleString()
> "11/10/2016, 11:49:36 AM"
You can then input locale strings and format string to get the precise output you want.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
How to get current formatted date dd/mm/yyyy in Javascript and append it to an input
I hope this is what you want:
const today = new Date();
const yyyy = today.getFullYear();
let mm = today.getMonth() + 1; // Months start at 0!
let dd = today.getDate();
if (dd < 10) dd = '0' + dd;
if (mm < 10) mm = '0' + mm;
const formattedToday = dd + '/' + mm + '/' + yyyy;
document.getElementById('DATE').value = formattedToday;
How do I get the current date in JavaScript?
How to format a UTC date as a `YYYY-MM-DD hh:mm:ss` string using NodeJS?
If you're using Node.js, you're sure to have EcmaScript 5, and so Date has a toISOString
method. You're asking for a slight modification of ISO8601:
new Date().toISOString()
> '2012-11-04T14:51:06.157Z'
So just cut a few things out, and you're set:
new Date().toISOString().
replace(/T/, ' '). // replace T with a space
replace(/\..+/, '') // delete the dot and everything after
> '2012-11-04 14:55:45'
Or, in one line: new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
ISO8601 is necessarily UTC (also indicated by the trailing Z on the first result), so you get UTC by default (always a good thing).
Related Topics
Need to Find Height of Hidden Div on Page (Set to Display:None)
How Does Github Change the Url But Not the Reload
How to Animate the Drawing of Text on a Web Page
Why Does Reflow Need to Be Triggered for CSS Transitions
Getcomputedstyle (Or) $.Css(Map) <-- to Get Every Style Declaration
Disabling the Context Menu on Long Taps on Android
Why Is Arr = [] Faster Than Arr = New Array
Why Doesn't JavaScript Support Multithreading
Why Is the Domsubtreemodified Event Deprecated in Dom Level 3
JavaScript Variable Definition: Commas VS. Semicolons
Jquery: How to Listen for Dom Changes
HTML Mobile -Forcing the Soft Keyboard to Hide
How to Optimize Website for Touch Devices
Interrupting/Stop a CSS3 Transition on the Actual Position/State
JavaScript Alert Not Working in Android Webview