I want to convert date to timestamp, my input is 26-02-2012
. I used
new Date(myDate).getTime();
It says NaN.. Can any one tell how to convert this?
I want to convert date to timestamp, my input is 26-02-2012
. I used
new Date(myDate).getTime();
It says NaN.. Can any one tell how to convert this?
Split the string into its parts and provide them directly to the Date constructor:
Update:
var myDate = "26-02-2012";
myDate = myDate.split("-");
var newDate = new Date( myDate[2], myDate[1] - 1, myDate[0]);
console.log(newDate.getTime());
Updated: Also, you can use a regular expression to split the string, for example:
const dtStr = "26/02/2012";
const [d, m, y] = dtStr.split(/-|\//); // splits "26-02-2012" or "26/02/2012"
const date = new Date(y, m - 1, d);
console.log(date.getTime());
NaN
. In Safari you have to use the other possible constructor new Date(year, month, day);
, regarding this example: new Date(myDate[2], myDate[1], myDate[0]);
–
Capacitate YYYY-MM-DD
), which is guaranteed to be understood by Date()
, and is, generally speaking, the most interoperable format for date strings. –
Insulation new Date(newDate).getTime()
will produce a timestamp in millisecond resolution. –
Honig Math.floor(new Date(newDate).getTime() / 1000)
–
Whereunto Try this function, it uses the Date.parse() method and doesn't require any custom logic:
function toTimestamp(strDate){
var datum = Date.parse(strDate);
return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));
Math.floor
around the return datum/1000;
line to prevent a decimal timestamp as it would make no sense for one to leave out the decimals after attempting to remove the millisecond precision via dividing by 1000. You'd usually want to either leave it as it is in milliseconds (by omitting the /1000
) or get the value in seconds in the form of a whole number (by wrapping it in a Math.floor
). –
Gris this refactored code will do it
let toTimestamp = strDate => Date.parse(strDate)
this works on all modern browsers except ie8-
Date.parse(strDate) / 1000;
instead of Date.parse(strDate)
. –
Resemblance There are two problems here. First, you can only call getTime on an instance of the date. You need to wrap new Date in brackets or assign it to variable.
Second, you need to pass it a string in a proper format.
Working example:
(new Date("2012-02-26")).getTime();
UPDATE: In case you came here looking for current timestamp
Date.now(); //as suggested by Wilt
or
var date = new Date();
var timestamp = date.getTime();
or simply
new Date().getTime();
/* console.log(new Date().getTime()); */
Date.now()
which makes your two suggestions suddenly look very complicated. Visit for more details on this function the documentation on MDN here. –
Fowler You need just to reverse your date digit and change -
with ,
:
new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)
In your case:
var myDate="26-02-2012";
myDate=myDate.split("-");
new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();
P.S. UK locale does not matter here.
Number
on strings starting with a 0
is problematic on some engines -- use parseInt
and specify a radix. –
Adiathermancy parseInt(myDate[0], 10))
instead of parseInt(myDate[0]), 10)
, otherwise 10 would not be the radix but the next argument of the Date()
constructor, which is the hour –
Hydrophilic To convert (ISO) date to Unix timestamp, I ended up with a timestamp 3 characters longer than needed so my year was somewhere around 50k...
I had to devide it by 1000:
new Date('2012-02-26').getTime() / 1000
JUST A REMINDER
Date.parse("2022-08-04T04:02:10.909Z")
// 1659585730909
Date.parse(new Date("2022-08-04T04:02:10.909Z"))
// 1659585730000 (milliseconds are ignored)
function getTimeStamp() {
var now = new Date();
return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
+ ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
.getSeconds()) : (now.getSeconds())));
}
Your string isn't in a format that the Date
object is specified to handle. You'll have to parse it yourself, use a date parsing library like MomentJS or the older (and not currently maintained, as far as I can tell) DateJS, or massage it into the correct format (e.g., 2012-02-29
) before asking Date
to parse it.
Why you're getting NaN
: When you ask new Date(...)
to handle an invalid string, it returns a Date
object which is set to an invalid date (new Date("29-02-2012").toString()
returns "Invalid date"
). Calling getTime()
on a date object in this state returns NaN
.
Date
object (which has nothing to do with the DOM). –
Adiathermancy For those who wants to have readable timestamp in format of, yyyymmddHHMMSS
> (new Date()).toISOString().replace(/[^\d]/g,'') // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"
Usage example: a backup file extension. /my/path/my.file.js.20190220
The below code will convert the current date into the timestamp.
var currentTimeStamp = Date.parse(new Date());
console.log(currentTimeStamp);
/**
* Date to timestamp
* @param string template
* @param string date
* @return string
* @example datetotime("d-m-Y", "26-02-2012") return 1330207200000
*/
function datetotime(template, date){
date = date.split( template[1] );
template = template.split( template[1] );
date = date[ template.indexOf('m') ]
+ "/" + date[ template.indexOf('d') ]
+ "/" + date[ template.indexOf('Y') ];
return (new Date(date).getTime());
}
The first answer is fine however Using react typescript would complain because of split('') for me the method tha worked better was.
parseInt((new Date("2021-07-22").getTime() / 1000).toFixed(0))
Happy to help.
In some cases, it appears that some dates are stubborn, that is, even with a date format, like "2022-06-29 15:16:21", you still get null or NaN. I got to resolve mine by including a "T" in the empty space, that is:
const inputDate = "2022-06-29 15:16:21";
const newInputDate = inputDate.replace(" ", "T");
const timeStamp = new Date(newInputDate).getTime();
And this worked fine for me! Cheers!
It should have been in this standard date format YYYY-MM-DD, to use below equation. You may have time along with example: 2020-04-24 16:51:56 or 2020-04-24T16:51:56+05:30. It will work fine but date format should like this YYYY-MM-DD only.
var myDate = "2020-04-24";
var timestamp = +new Date(myDate)
Here I am converting the current date to a timestamp and then I take the timestamp and convert it to the current date back, with us showing how to convert date to timestamp and timestamp to date.
var date = new Date();
var timestamp = date.getTime();
console.log(timestamp) // 1654636718244
var actual = new Date(timestamp)
console.log(actual) // Tue Jun 07 2022 18:18:38 GMT-0300 (Horário Padrão de Brasília)
The simplest and accurate way would be to add the unary operator before the date
console.log(`Time stamp is: ${Number(+new Date())}`)
Answers have been provided by other developers but in my own way, you can do this on the fly without creating any user defined function as follows:
var timestamp = Date.parse("26-02-2012".split('-').reverse().join('-'));
alert(timestamp); // returns 1330214400000
Simply performing some arithmetic on a Date
object will return the timestamp as a number
. This is useful for compact notation. I find this is the easiest way to remember, as the method also works for converting numbers cast as string
types back to number
types.
let d = new Date();
console.log(d, d * 1);
This would do the trick if you need to add time also
new Date('2021-07-22 07:47:05.842442+00').getTime()
This would also work without Time
new Date('2021-07-22 07:47:05.842442+00').getTime()
This would also work but it won't Accept Time
new Date('2021/07/22').getTime()
And Lastly if all did not work use this
new Date(year, month, day, hours, minutes, seconds, milliseconds)
Note for Month it the count starts at 0
so Jan === 0
and Dec === 11
+new Date(myDate)
this should convert myDate to timeStamp
it that simple but you have to make sure to use american date format
function MygetTime(date){
return (new Date(date).getTime())
}
console.log(MygetTime("03-13-2023"))
I use this to get my time stamp:
Date.parse("2000-03-04 09:10:43")/1000;
2024 UPDATE
No package needed
const timestamp = Math.floor(Date.now() / 1000)
© 2022 - 2024 — McMap. All rights reserved.
Date(myDate).getTime()
(what you've marked up as code), or is the word "new" prior to it meant to be part of the code? The more effort you put in, the better the answers you get will be. – Adiathermancynew Date()
... So like,(new Date("2022-03-02")).getTime()
– Itemize