I'm trying to use JS to turn a date object
into a string in YYYYMMDD
format. Is there an easier way than concatenating Date.getYear()
, Date.getMonth()
, and Date.getDay()
?
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();
[1]
with .length===2
, because an indexer on a string is not fully supported. See this answer for reasons why. –
Failure [this.getFullYear(), mm<10 ? '0'+ mm: mm, dd<10 ? '0'+ dd : dd].join('.')
–
Menhaden var mm = (this.getMonth() + 101).toString().substring(1, 3)
–
Turbofan Date
–
Okajima []
is pretty safe, nobody is modifying the string character here, and it's only not supported on very old browsers, such as IE7-. –
Advertent join('-')
to get your yyyy-mm-dd format. Just saying. –
Katusha I didn't like adding to the prototype. An alternative would be:
var rightNow = new Date();
var res = rightNow.toISOString().slice(0,10).replace(/-/g,"");
<!-- Next line is for code snippet output only -->
document.body.innerHTML += res;
rightNow
variable around, you can wrap new Date
and get it all back in a single line: (new Date()).toISOString().slice(0,10).replace(/-/g,"")
–
Twilatwilight YYYYMMDDHHmmSSsss
, so I did this: var ds = (new Date()).toISOString().replace(/[^0-9]/g, "");
. Pretty simple, but should be encapsulated. –
Wholesome (new Date).toISOString().split('T')[0].replace(/-/g,"");
? –
Asci rightNow.setMinutes(rightNow.getMinutes() - rightNow.getTimezoneOffset()); rightNow.toISOString().slice(0,10)
–
Vaporish new Date()
with brackets, new
's execution order is earlier than other operators like .
and ()
–
Reproach You can use the toISOString
function :
var today = new Date();
today.toISOString().substring(0, 10);
It will give you a "yyyy-mm-dd" format.
(date=>new Date(date.valueOf()-60*1000*date.getTimezoneOffset()).toISOString().substring(0, 10))(new Date())
–
Illyria Moment.js could be your friend
var date = new Date();
var formattedDate = moment(date).format('YYYYMMDD');
var formattedDate = moment().format('YYYYMMDD');
–
Bulbil Moment.js
is a must have library –
Cum date-fns
which has a smaller footprint (19.5KB vs 71.9KB gzipped). –
Freightage new Date('Jun 5 2016').
toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).
replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');
// => '2016-06-05'
new Date('Sun Mar 31 2019 00:00:00.000').toLocaleString('en-us', {year: 'numeric', month: '2-digit', day: '2-digit'}).replace(/(\d+)\/(\d+)\/(\d+)/, '$3-$1-$2');
–
Indraft If you don't need a pure JS solution, you can use jQuery UI to do the job like this :
$.datepicker.formatDate('yymmdd', new Date());
I usually don't like to import too much libraries. But jQuery UI is so useful, you will probably use it somewhere else in your project.
Visit http://api.jqueryui.com/datepicker/ for more examples
This is a single line of code that you can use to create a YYYY-MM-DD
string of today's date.
var d = new Date().toISOString().slice(0,10);
toISOString()
will give 2015-12-31T22:00:00 GMT +0 (two hours before). –
Linotype I don't like modifying native objects, and I think multiplication is clearer than the string padding the accepted solution.
function yyyymmdd(dateIn) {
var yyyy = dateIn.getFullYear();
var mm = dateIn.getMonth() + 1; // getMonth() is zero-based
var dd = dateIn.getDate();
return String(10000 * yyyy + 100 * mm + dd); // Leading zeros for mm and dd
}
var today = new Date();
console.log(yyyymmdd(today));
.replace('-', '')
on to make it answer the OP's question), whereas you were true to the OP's original question and it would not require that extra step. Excellent! –
Syllabism var
would be replaced by let
as it's function scoped here –
Starr Local time:
var date = new Date();
date = date.toJSON().slice(0, 10);
UTC time:
var date = new Date().toISOString();
date = date.substring(0, 10);
date will print 2020-06-15 today as i write this.
toISOString() method returns the date with the ISO standard which is YYYY-MM-DDTHH:mm:ss.sssZ
The code takes the first 10 characters that we need for a YYYY-MM-DD format.
If you want format without '-' use:
var date = new Date();
date = date.toJSON().slice(0, 10).split`-`.join``;
In .join`` you can add space, dots or whatever you'd like.
.toISOString();
will return UTC time. So depending on the time and your timezone, the final date you will get can be +1 or -1 day –
Starr In addition to o-o's answer I'd like to recommend separating logic operations from the return and put them as ternaries in the variables instead.
Also, use concat()
to ensure safe concatenation of variables
Date.prototype.yyyymmdd = function() {
var yyyy = this.getFullYear();
var mm = this.getMonth() < 9 ? "0" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based
var dd = this.getDate() < 10 ? "0" + this.getDate() : this.getDate();
return "".concat(yyyy).concat(mm).concat(dd);
};
Date.prototype.yyyymmddhhmm = function() {
var yyyymmdd = this.yyyymmdd();
var hh = this.getHours() < 10 ? "0" + this.getHours() : this.getHours();
var min = this.getMinutes() < 10 ? "0" + this.getMinutes() : this.getMinutes();
return "".concat(yyyymmdd).concat(hh).concat(min);
};
Date.prototype.yyyymmddhhmmss = function() {
var yyyymmddhhmm = this.yyyymmddhhmm();
var ss = this.getSeconds() < 10 ? "0" + this.getSeconds() : this.getSeconds();
return "".concat(yyyymmddhhmm).concat(ss);
};
var d = new Date();
document.getElementById("a").innerHTML = d.yyyymmdd();
document.getElementById("b").innerHTML = d.yyyymmddhhmm();
document.getElementById("c").innerHTML = d.yyyymmddhhmmss();
<div>
yyyymmdd: <span id="a"></span>
</div>
<div>
yyyymmddhhmm: <span id="b"></span>
</div>
<div>
yyyymmddhhmmss: <span id="c"></span>
</div>
("00" + (this.getDate())).slice(-2)
to get the numbers two-digits based. There is no "if" or "?:" statement, and less calls to the .getX() function. If not a little bit faster, it’s at least more readable. –
Audiovisual Plain JS (ES5) solution without any possible date jump issues caused by Date.toISOString() printing in UTC:
var now = new Date();
var todayUTC = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
return todayUTC.toISOString().slice(0, 10).replace(/-/g, '');
This in response to @weberste's comment on @Pierre Guilbert's answer.
toISOString
return multiple successive hyphens? –
Boutis // UTC/GMT 0
document.write('UTC/GMT 0: ' + (new Date()).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812013509
// Client local time
document.write('<br/>Local time: ' + (new Date(Date.now()-(new Date()).getTimezoneOffset() * 60000)).toISOString().slice(0, 19).replace(/[^0-9]/g, "")); // 20150812113509
Another way is to use toLocaleDateString
with a locale that has a big-endian date format standard, such as Sweden, Lithuania, Hungary, South Korea, ...:
date.toLocaleDateString('se')
To remove the delimiters (-
) is just a matter of replacing the non-digits:
console.log( new Date().toLocaleDateString('se').replace(/\D/g, '') );
This does not have the potential error you can get with UTC date formats: the UTC date may be one day off compared to the date in the local time zone.
var someDate = new Date();
var dateFormated = someDate.toISOString().substr(0,10);
console.log(dateFormated);
new Date()
creates a new date object which is just a wrapper around nr. of ms since 1970/01/01 00:00:00.000 UTC. Then toISOString
prints out in local timezone. –
Pulsometer dateformat is a very used package.
How to use:
Download and install dateformat
from NPM. Require it in your module:
const dateFormat = require('dateformat');
and then just format your stuff:
const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');
A little variation for the accepted answer:
function getDate_yyyymmdd() {
const date = new Date();
const yyyy = date.getFullYear();
const mm = String(date.getMonth() + 1).padStart(2,'0');
const dd = String(date.getDate()).padStart(2,'0');
return `${yyyy}${mm}${dd}`
}
console.log(getDate_yyyymmdd())
Working from @o-o's answer this will give you back the string of the date according to a format string. You can easily add a 2 digit year regex for the year & milliseconds and the such if you need them.
Date.prototype.getFromFormat = function(format) {
var yyyy = this.getFullYear().toString();
format = format.replace(/yyyy/g, yyyy)
var mm = (this.getMonth()+1).toString();
format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
var dd = this.getDate().toString();
format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
var hh = this.getHours().toString();
format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
var ii = this.getMinutes().toString();
format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
var ss = this.getSeconds().toString();
format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
return format;
};
d = new Date();
var date = d.getFromFormat('yyyy-mm-dd hh:ii:ss');
alert(date);
I don't know how efficient that is however, especially perf wise because it uses a lot of regex. It could probably use some work I do not master pure js.
NB: I've kept the predefined class definition but you might wanna put that in a function or a custom class as per best practices.
Shortest
.toJSON().slice(0,10).split`-`.join``;
let d = new Date();
let s = d.toJSON().slice(0,10).split`-`.join``;
console.log(s);
This guy here => http://blog.stevenlevithan.com/archives/date-time-format wrote a format()
function for the Javascript's Date
object, so it can be used with familiar literal formats.
If you need full featured Date formatting in your app's Javascript, use it. Otherwise if what you want to do is a one off, then concatenating getYear(), getMonth(), getDay() is probably easiest.
Little bit simplified version for the most popular answer in this thread https://mcmap.net/q/65335/-get-string-in-yyyymmdd-format-from-js-date-object :
function toYYYYMMDD(d) {
var yyyy = d.getFullYear().toString();
var mm = (d.getMonth() + 101).toString().slice(-2);
var dd = (d.getDate() + 100).toString().slice(-2);
return yyyy + mm + dd;
}
You can simply use This one line code to get date in year
var date = new Date().getFullYear() + "-" + (parseInt(new Date().getMonth()) + 1) + "-" + new Date().getDate();
How about Day.js?
It's only 2KB, and you can also dayjs().format('YYYY-MM-DD')
.
Use padStart:
Date.prototype.yyyymmdd = function() {
return [
this.getFullYear(),
(this.getMonth()+1).toString().padStart(2, '0'), // getMonth() is zero-based
this.getDate().toString().padStart(2, '0')
].join('-');
};
[day,,month,,year]= Intl.DateTimeFormat(undefined, { year: 'numeric', month: '2-digit', day: '2-digit' }).formatToParts(new Date()),year.value+month.value+day.value
or
new Date().toJSON().slice(0,10).replace(/\/|-/g,'')
DateTimeFormat
was different. I suspect it is localized. –
Evite .toISOString();
will return UTC time. So depending on the time and your timezone, the final date you will get can be +1 or -1 day –
Starr This code is fix to Pierre Guilbert's answer:
(it works even after 10000 years)
YYYYMMDD=new Date().toISOString().slice(0,new Date().toISOString().indexOf("T")).replace(/-/g,"")
Answering another for Simplicity & readability.
Also, editing existing predefined class members with new methods is not encouraged:
function getDateInYYYYMMDD() {
let currentDate = new Date();
// year
let yyyy = '' + currentDate.getFullYear();
// month
let mm = ('0' + (currentDate.getMonth() + 1)); // prepend 0 // +1 is because Jan is 0
mm = mm.substr(mm.length - 2); // take last 2 chars
// day
let dd = ('0' + currentDate.getDate()); // prepend 0
dd = dd.substr(dd.length - 2); // take last 2 chars
return yyyy + "" + mm + "" + dd;
}
var currentDateYYYYMMDD = getDateInYYYYMMDD();
console.log('currentDateYYYYMMDD: ' + currentDateYYYYMMDD);
It seems that mootools provides Date().format()
: https://mootools.net/more/docs/1.6.0/Types/Date
I'm not sure if it worth including just for this particular task though.
I usually use the code below when I need to do this.
var date = new Date($.now());
var dateString = (date.getFullYear() + '-'
+ ('0' + (date.getMonth() + 1)).slice(-2)
+ '-' + ('0' + (date.getDate())).slice(-2));
console.log(dateString); //Will print "2015-09-18" when this comment was written
To explain, .slice(-2) gives us the last two characters of the string.
So no matter what, we can add "0" to the day or month, and just ask for the last two since those are always the two we want.
So if the MyDate.getMonth() returns 9, it will be:
("0" + "9") // Giving us "09"
so adding .slice(-2) on that gives us the last two characters which is:
("0" + "9").slice(-2)
"09"
But if date.getMonth() returns 10, it will be:
("0" + "10") // Giving us "010"
so adding .slice(-2) gives us the last two characters, or:
("0" + "10").slice(-2)
"10"
From ES6 onwards you can use template strings to make it a little shorter:
var now = new Date();
var todayString = `${now.getFullYear()}-${now.getMonth()}-${now.getDate()}`;
This solution does not zero pad. Look to the other good answers to see how to do that.
getMonth()
is zero-based and 2) you don't pad with zeros. In sum, "Jan 1, 2020" will result in 2020-0-1
which is far from ideal. –
Jethro const date = new Date()
console.log(date.toISOString().split('T')[0]) // 2022-12-27
If using AngularJs (up to 1.5) you can use the date filter:
var formattedDate = $filter('date')(myDate, 'yyyyMMdd')
yyyymmdd=x=>(f=x=>(x<10&&'0')+x,x.getFullYear()+f(x.getMonth()+1)+f(x.getDate()));
alert(yyyymmdd(new Date));
date-shortcode to the rescue!
const dateShortcode = require('date-shortcode')
dateShortcode.parse('{YYYYMMDD}', new Date())
//=> '20180304'
A lot of answers here use the toisostring function. This function converts the time to zulu time before outputting, which may cause issues.
function datestring(time) {
return new Date(time.getTime() - time.getTimezoneOffset()*60000).toISOString().slice(0,10).replace(/-/g,"")
}
mydate = new Date("2018-05-03")
console.log(datestring(mydate))
The datestring function fixes the timezone issue, or even better you can avoid the whole issue by working in zulu time:
mydate = new Date("2018-05-03Z")
// mydate = new Date(Date.UTC(2018,5,3))
console.log(mydate.toISOString().slice(0,10).replace(/-/g,""))
Here is a more generic approach which allows both date and time components and is identically sortable as either number or string.
Based on the number order of Date ISO format, convert to a local timezone and remove non-digits. i.e.:
// monkey patch version
Date.prototype.IsoNum = function (n) {
var tzoffset = this.getTimezoneOffset() * 60000; //offset in milliseconds
var localISOTime = (new Date(this - tzoffset)).toISOString().slice(0,-1);
return localISOTime.replace(/[-T:\.Z]/g, '').substring(0,n || 20); // YYYYMMDD
}
Usage
var d = new Date();
// Tue Jul 28 2015 15:02:53 GMT+0200 (W. Europe Daylight Time)
console.log(d.IsoNum(8)); // "20150728"
console.log(d.IsoNum(12)); // "201507281502"
console.log(d.IsoNum()); // "20150728150253272"
Native Javascript:
new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');
Sure, you can build a specific function for each variation of date string representations. If you consider international date formats you wind up with dozens of specific functions with rediculous names and hard to distinguish.
There is no reasonable function that matches all formats, but there is a reasonable function composition that does:
const pipe2 = f => g => x =>
g(f(x));
const pipe3 = f => g => h => x =>
h(g(f(x)));
const invoke = (method, ...args) => o =>
o[method] (...args);
const padl = (c, n) => s =>
c.repeat(n)
.concat(s)
.slice(-n);
const inc = n => n + 1;
// generic format date function
const formatDate = stor => (...args) => date =>
args.map(f => f(date))
.join(stor);
// MAIN
const toYYYYMMDD = formatDate("") (
invoke("getFullYear"),
pipe3(invoke("getMonth")) (inc) (padl("0", 2)),
pipe2(invoke("getDate")) (padl("0", 2)));
console.log(toYYYYMMDD(new Date()));
Yes, this is a lot of code. But you can express literally every string date representation by simply changing the function arguments passed to the higher order function formatDate
. Everything is explicit and declarative i.e., you can almost read what's happening.
One Liner (2022) w/ Correct Timezone Offset
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON().slice(0, 10).replaceAll("-", "");
// YearMonthDay
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON().slice(0, 10).replaceAll("-", "");
console.log("YearMonthDay");
console.log(dateDisplay);
// Year-Month-Day
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON().slice(0, 10);
console.log("Year-Month-Day");
console.log(dateDisplay);
// Year-Month-Day Hour:Minute:Second
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON().slice(0, 19).replace("T", " ");
console.log("Year-Month-Day Hour:Minute:Second");
console.log(dateDisplay);
// Year-Month-Day Hour-Minute-Second
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON().slice(0, 19).replace("T", " ").replaceAll(":", "-");
console.log("Year-Month-Day Hour-Minute-Second");
console.log(dateDisplay);
// ISO-8601 standard: YYYY-MM-DDTHH:mm:ss.sssZ
var dateDisplay = new Date(Date.now() - (new Date().getTimezoneOffset() * 1000 * 60)).toJSON();
console.log("ISO-8601 standard: YYYY-MM-DDTHH:mm:ss.sssZ");
console.log(dateDisplay);
I've written a simple function, which can convert a Date
object to String
with date number, month number (with zero padding) and year number in customizable order. You can use it with any separator you like or leave this parameter empty to have no separator in output. Please, have a look.
function dateToString(date, $1, $2, $3, separator='') {
const dateObj = {
date: String(date.getDate()).padStart(2, '0'),
month: String(date.getMonth() + 1).padStart(2, '0'),
year: date.getFullYear()
};
return dateObj[$1] + separator + dateObj[$2] + separator + dateObj[$3];
}
const date = new Date();
const dateString1 = dateToString(date, 'year', 'month', 'date');
console.log(dateString1);
// Manipulate arguments order to get output you want
const dateString2 = dateToString(date, 'date', 'month', 'year', '-');
console.log(dateString2);
Here is a little improvement to the answer from https://stackoverflow.com/users/318563/o-o
Date.prototype.ddmmyyyy = function(delimiter) {
var yyyy = this.getFullYear().toString();
var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
var dd = this.getDate().toString();
return (dd[1]?dd:"0"+dd[0]) + delimiter + (mm[1]?mm:"0"+mm[0]) + delimiter +yyyy ; // padding
};
Hope to be helpfull for anyone!
:)
Try this:
function showdate(){
var a = new Date();
var b = a.getFullYear();
var c = a.getMonth();
(++c < 10)? c = "0" + c : c;
var d = a.getDate();
(d < 10)? d = "0" + d : d;
var final = b + "-" + c + "-" + d;
return final;
}
document.getElementById("todays_date").innerHTML = showdate();
this post helped me to write this helper, so I share it in case some one is looking for this solution, it supports all variations of yyyy, mm, dd
Date.prototype.formattedDate = function (pattern) {
formattedDate = pattern.replace('yyyy', this.getFullYear().toString());
var mm = (this.getMonth() + 1).toString(); // getMonth() is zero-based
mm = mm.length > 1 ? mm : '0' + mm;
formattedDate = formattedDate.replace('mm', mm);
var dd = this.getDate().toString();
dd = dd.length > 1 ? dd : '0' + dd;
formattedDate = formattedDate.replace('dd', dd);
return formattedDate;
};
d = new Date();
pattern = 'yyyymmdd'; // 20150813
d.formattedDate(pattern);
pattern = 'yyyy-mm-dd';
d.formattedDate(pattern); // 2015-08-13
Date.js has a lot of helpful date parsing methods.
require("datejs")
(new Date()).toString("yyyyMMdd")
I try to write a simple library for manipulating JavaScript date object. You can try this.
var dateString = timeSolver.getString(date, "YYYYMMDD")
Libarary here: https://github.com/sean1093/timeSolver
newDate = timeSolver.add(newDate, 1, 'd'); date = timeSolver.getString(newDate, 'YYYY-MM-DD');
Resulted in a bad formatted date like 2017-6-9 –
Garamond Nice, and easy:
var date = new Date();
var yyyy = date.getFullYear();
var mm = date.getMonth() + 1; // getMonth() is zero-based
if (mm < 10) mm='0'+mm;
var dd = date.getDate();
if (dd < 10) dd='0'+dd;
/*date.yyyymmdd();*/
console.log('test - '+yyyy+'-'+mm+'-'+dd);
The @o-o solution doesn't work in my case. My solution is the following:
Date.prototype.yyyymmdd = function() {
var mm = this.getMonth() + 1; // getMonth() is zero-based
var dd = this.getDate();
var ret = [this.getFullYear(), (mm<10)?'0':'', mm, (dd<10)?'0':'', dd].join('');
return ret; // padding
};
To get the local date, in a YYYYMMDD format, im using:
var todayDate = (new Date()).toLocaleString('en-GB').slice(0,10).split("\/").reverse().join("");
You can create yourself function as below
function toString(o, regex) {
try {
if (!o) return '';
if (typeof o.getMonth === 'function' && !!regex) {
let splitChar = regex.indexOf('/') > -1 ? '/' : regex.indexOf('-') > -1 ? '-' : regex.indexOf('.') > -1 ? '.' : '';
let dateSeparate = regex.split(splitChar);
let result = '';
for (let item of dateSeparate) {
let val = '';
switch (item) {
case 'd':
val = o.getDate();
break;
case 'dd':
val = this.date2Char(o.getDate());
break;
case 'M':
val = o.getMonth() + 1;
break;
case 'MM':
val = this.date2Char(o.getMonth() + 1);
break;
case 'yyyy':
val = o.getFullYear();
break;
case 'yy':
val = this.date2Char(o.getFullYear());
break;
default:
break;
}
result += val + splitChar;
}
return result.substring(0, result.length - 1);
} else {
return o.toString();
}
} catch(ex) { return ''; }
}
function concatDateToString(args) {
if (!args.length) return '';
let result = '';
for (let i = 1; i < args.length; i++) {
result += args[i] + args[0];
}
return result.substring(0, result.length - 1);
}
function date2Char(d){
return this.rightString('0' + d);
}
function rightString(o) {
return o.substr(o.length - 2);
}
Used:
var a = new Date();
console.log('dd/MM/yyyy: ' + toString(a, 'dd/MM/yyyy'));
console.log('MM/dd/yyyy: ' + toString(a, 'MM/dd/yyyy'));
console.log('dd/MM/yy: ' + toString(a, 'dd/MM/yy'));
console.log('MM/dd/yy: ' + toString(a, 'MM/dd/yy'));
I hope this function will be useful
function formatDate(dDate,sMode){
var today = dDate;
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
}
if(mm<10) {
mm = '0'+mm
}
if (sMode+""==""){
sMode = "dd/mm/yyyy";
}
if (sMode == "yyyy-mm-dd"){
return yyyy + "-" + mm + "-" + dd + "";
}
if (sMode == "dd/mm/yyyy"){
return dd + "/" + mm + "/" + yyyy;
}
}
Here's a compact little function that's easy to read and avoids local variables, which can be time-sinks in JavaScript. I don't use prototypes to alter standard modules, because it pollutes the namespace and can lead to code that doesn't do what you think it should.
The main function has a stupid name, but it gets the idea across.
function dateToYYYYMMDDhhmmss(date) {
function pad(num) {
num = num + '';
return num.length < 2 ? '0' + num : num;
}
return date.getFullYear() + '/' +
pad(date.getMonth() + 1) + '/' +
pad(date.getDate()) + ' ' +
pad(date.getHours()) + ':' +
pad(date.getMinutes()) + ':' +
pad(date.getSeconds());
}
date.getMonth()
, Date
, etc. –
Gynaecocracy var dateDisplay = new Date( 2016-11-09 05:27:00 UTC );
dateDisplay = dateDisplay.toString()
var arr = (dateDisplay.split(' '))
var date_String = arr[0]+','+arr[1]+' '+arr[2]+' '+arr[3]+','+arr[4]
this will show string like Wed,Nov 09 2016,10:57:00
<pre>Date.prototype.getFromFormat = function(format) {
var yyyy = this.getFullYear().toString();
format = format.replace(/yyyy/g, yyyy)
var mm = (this.getMonth()+1).toString();
format = format.replace(/mm/g, (mm[1]?mm:"0"+mm[0]));
var dd = this.getDate().toString();
format = format.replace(/dd/g, (dd[1]?dd:"0"+dd[0]));
var hh = this.getHours().toString();
format = format.replace(/hh/g, (hh[1]?hh:"0"+hh[0]));
var ii = this.getMinutes().toString();
format = format.replace(/ii/g, (ii[1]?ii:"0"+ii[0]));
var ss = this.getSeconds().toString();
format = format.replace(/ss/g, (ss[1]?ss:"0"+ss[0]));
var ampm = (hh >= 12) ? "PM" : "AM";
format = format.replace(/ampm/g, (ampm[1]?ampm:"0"+ampm[0]));
return format;
};
var time_var = $('#899_TIME');
var myVar = setInterval(myTimer, 1000);
function myTimer() {
var d = new Date();
var date = d.getFromFormat('dd-mm-yyyy hh:ii:ss:ampm');
time_var.text(date);
} </pre>
use the code and get the output like **26-07-2017 12:29:34:PM**
check the below link for your reference
https://parthiban037.wordpress.com/2017/07/26/date-and-time-format-in-oracle-apex-using-javascript/
© 2022 - 2024 — McMap. All rights reserved.