How Can I Convert A Hh:mm:ss String To A Javascript Date Object?
I have dynamic string with a HH:mm:ss format (e.g. 18:19:02). How can the string be converted into a JavaScript Date object (in Internet Explorer 8, Chrome, and Firefox)? I tried
Solution 1:
You cannot create a Date Object directly just from a time like HH:mm:ss
.
However - assuming you want the current date(the day portion of the Date object being today) or it doesn't matter for your case - you could do the following:
let d = newDate(); // Creates a Date Object using the clients current timelet [hours, minutes, seconds] = "18:19:02".split(':');
d.setHours(+hours); // Set the hours, using implicit type coercion
d.setMinutes(minutes); // can pass Number or String - doesn't really matter
d.setSeconds(seconds);
// If needed, you could also adjust date and time zoneconsole.log(d.toString()); //Outputs desired time (+current day/timezone)
Now you have a Date object which contains the time you specified plus the current date and timezone of your client.
Solution 2:
Try this (without jQuery and a date object (it's only a time)):
var
pieces = "8:19:02".split(':')
hour, minute, second;
if(pieces.length === 3) {
hour = parseInt(pieces[0], 10);
minute = parseInt(pieces[1], 10);
second = parseInt(pieces[2], 10);
}
Solution 3:
The Date object is never properly set because of the missing date part. This should work:
var d = newDate("1970-01-01 18:19:02");
document.write(d.getMinutes() + ":" + d.getSeconds());
Post a Comment for "How Can I Convert A Hh:mm:ss String To A Javascript Date Object?"