Date shift in JavaScript can be done by counting days of the month and thinking of 28 or 29 days in February. Don’t forget the year. This is a long and complicated algorithm. I suggest a simpler solution. Transform date to the number of milliseconds, and make easy arithmetic with integers. After addition and subtraction, create date from the milliseconds.
<< | < | > | >> |
In this example, shifDate is called on the onClick event with parameter -1 and 1 for the day shift, and -7 and 7 for the week shift. With a few lines of JavaScript, date can be shifted easily.
function shiftDate(shift) { // set reference to the element containing date var txtDate = document.getElementById('txtDate'), // extract month, day and year from the txtDate string (format is mm/dd/yyyy) mm = txtDate.innerHTML.substring(0, 2), dd = txtDate.innerHTML.substring(3, 5), yyyy = txtDate.innerHTML.substring(6, 10), // convert txtDate to the miliseconds (mm-1 because months start with 0) mSeconds = (new Date(yyyy, mm - 1, dd)).getTime(), // initialize date object objDate = new Date(); // set shifted date (86400000 is the number of miliseconds in one day) objDate.setTime(mSeconds + 86400000 * shift); // get month, day and year from shifted date (reuse mm, dd and yyyy variables) mm = objDate.getMonth() + 1; dd = objDate.getDate(); yyyy = objDate.getFullYear(); // set leading zero if needed if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } // write back shifted date to the HTML element txtDate.innerHTML = mm + '/' + dd + '/' + yyyy; }
Just for a note, current date is displayed using another JavaScript code. I had to use client side logic, because this is a classic WordPress post.
Some genuinely great information, Glad I discovered this. Good teaching is onefourth preparation and threefourths theater. by Gail.
@Smithd562 – Thank you and I’m glad you found my script useful.