Reputation: 67
I want to display time in 24 hours format, but in my code the problem is that it shows the date:minute (18:20) after this i need to convert that time in minutes or seconds.
var time = "18/10/2016 7:20:50 PM";
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if (AMPM == "PM" && hours < 12) hours = hours + 12;
if (AMPM == "AM" && hours == 12) hours = hours - 12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if (hours < 10) sHours = "0" + sHours;
if (minutes < 10) sMinutes = "0" + sMinutes;
stime = (sHours + ":" + sMinutes);
sstime = stime.toString();
document.write(sstime);
Upvotes: 0
Views: 397
Reputation: 68433
Your hours
regex is wrong, try this simpler way to extract hours and minutes
var items = time.split( " " )[1].split(":");
var hours = Number(items[0]);
var minutes = Number(items[1]);
Your rest of the logic should be fine.
var time = "18/10/2016 7:20:50 PM";
var items = time.split(" ")[1].split(":");
var hours = Number(items[0]);
var minutes = Number(items[1]);
var AMPM = time.split(" ")[2];
if (AMPM == "PM" && hours < 12) hours = hours + 12;
if (AMPM == "AM" && hours == 12) hours = hours - 12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if (hours < 10) sHours = "0" + sHours;
if (minutes < 10) sMinutes = "0" + sMinutes;
stime = (sHours + ":" + sMinutes);
sstime = stime.toString();
console.log(sstime);
Upvotes: 2
Reputation: 1331
dt = new Date();
var m = dt.getMonth() + 1;
var y = dt.getFullYear();
var d = dt.getDate();
var mm = dt.getMinutes();
var h = dt.getHours();
var s = dt.getSeconds();
if (m < 10)
m = "0" + m;
if (d < 10)
d = "0" + d;
if (h < 10)
h = "0" + h;
if (mm < 10)
mm = "0" + mm;
if (s < 10)
s = "0" + s;
console.log( y + "-" + m + "-" + d + " " + h + ":" + mm + ":" + s);
console.log( y + "-" + m + "-" + d);
Upvotes: 1