Convert normal date to unix timestamp
JavascriptJqueryDateDatetimeUnix TimestampJavascript Problem Overview
How can I convert normal date 2012.08.10
to unix timestamp in javascript?
Fiddle: http://jsfiddle.net/J2pWj/
I've seen many posts here that convert it in PHP, Ruby, etc... But I need to do this inside JS.
Javascript Solutions
Solution 1 - Javascript
Math.floor(new Date('2012.08.10').getTime() / 1000)
Check the JavaScript Date documentation.
Solution 2 - Javascript
parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))
It's important to add the toFixed(0)
to remove any decimals when dividing by 1000 to convert from milliseconds to seconds.
The .getTime()
function returns the timestamp in milliseconds, but true unix timestamps are always in seconds.
Solution 3 - Javascript
var d = '2016-01-01T00:00:00.000Z'; console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch
Solution 4 - Javascript
You should check out the moment.js api, it is very easy to use and has lots of built in features.
I think for your problem, you could use something like this:
var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();
Solution 5 - Javascript
var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);
In this case it's important to return only a whole number (so a simple division won't do), and also to only return actually elapsed seconds (that's why this code uses Math.floor()
and not Math.round()
).
Solution 6 - Javascript
You could simply use the unary + operator
(+new Date('2012.08.10')/1000).toFixed(0);
http://xkr.us/articles/javascript/unary-add/ - look under Dates.
Solution 7 - Javascript
You can do it using Date.parse() Method.
Date.parse($("#yourCustomDate).val())
Date.parse("03.03.2016") output-> 1456959600000
Date.parse("2015-12-12") output-> 1449878400000
Solution 8 - Javascript
You can use Date.parse(), but the input formats that it accepts are implementation-dependent. However, if you can convert the date to ISO format (YYYY-MM-DD), most implementations should understand it.
See https://stackoverflow.com/questions/2587345/javascript-date-parse.
Solution 9 - Javascript
var datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;
Solution 10 - Javascript
After comparing timestamp with the one from PHP, none of the above seems correct for my timezone. The code below gave me same result as PHP which is most important for the project I am doing.
function getTimeStamp(input) {
var parts = input.trim().split(' ');
var date = parts[0].split('-');
var time = (parts[1] ? parts[1] : '00:00:00').split(':');
// NOTE:: Month: 0 = January - 11 = December.
var d = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
return d.getTime() / 1000;
}
// USAGE::
var start = getTimeStamp('2017-08-10');
var end = getTimeStamp('2017-08-10 23:59:59');
console.log(start + ' - ' + end);
I am using this on NodeJS, and we have timezone 'Australia/Sydney'. So, I had to add this on .env file:
TZ = 'Australia/Sydney'
Above is equivalent to:
process.env.TZ = 'Australia/Sydney'
Solution 11 - Javascript
convert timestamp to unix timestamp.
const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)
to get the timeStamp after conversion
const TimeStamp = new Date(date*1000).getTime(); //1513787412000
Solution 12 - Javascript
Using dayjs library:
dayjs('2019-01-25').unix() // 1548381600