Hi I’m a newbie in JavaScript and have little to no experience in it. Clicking the button will print the input time.
What i was trying to do was subtract the time by 9 hours 30 minutes and I’m unable to find a way to do it.
It will help me a lot if someone could explain how to do this.
I’ve attached the whole HTML document below.
function myFunction() { var x = document.getElementById("meeting-time").value; document.getElementById("demo").innerHTML = x; }
<input type="datetime-local" id="meeting-time" name="meeting-time"> <button onclick="myFunction()">click to print time</button> <p id="demo"></p>
Advertisement
Answer
You have to make use of the Date Object.
- Pass the input as a Date object
- Set the new date by subtracting hours and minutes as necessary
Side Note: If you have more complex operations which include dates, you can make use of a third-party library like Moments Js
function myFunction() { var x = document.getElementById("meeting-time").value; var date = new Date(x); // parse date as a Date object: TODO: Error handling -> sanitize the input date.setHours(date.getHours() - 9); // change the date object by subtracting hours from the same date object date.setMinutes(date.getMinutes() - 30); // change the date object by subtracting minutes from the same date object document.getElementById("demo").innerHTML = date; }
<input type="datetime-local" id="meeting-time" name="meeting-time"> <button onclick="myFunction()">click to print time</button> <p id="demo"></p>