Phiên bản đầy đủ: jsB@nk » Thời gian » Hợp lệ » Khoảng thời gian giữa hai thời điểm
URL: https://www.javascriptbank.com/date-difference-script.html
Người dùng nhập vào hai thời điểm khác nhau, hiệu ứng sẽ tính hai thời điểm này cách nhau bao nhiêu tuần, ngày, giờ, phút và giây.
Phiên bản đầy đủ: jsB@nk » Thời gian » Hợp lệ » Khoảng thời gian giữa hai thời điểm
URL: https://www.javascriptbank.com/date-difference-script.html
<script language="JavaScript">// Ronnie T. Moorefunction isValidDate(dateStr) {// Date validation function courtesty of // Sandeep V. Tamhankar ([email protected]) -->// Checks for the following valid date formats:// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYYvar datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit yearvar matchArray = dateStr.match(datePat); // is the format ok?if (matchArray == null) {alert(dateStr + " Date is not in a valid format.")return false;}month = matchArray[1]; // parse date into variablesday = matchArray[3];year = matchArray[4];if (month < 1 || month > 12) { // check month rangealert("Month must be between 1 and 12.");return false;}if (day < 1 || day > 31) {alert("Day must be between 1 and 31.");return false;}if ((month==4 || month==6 || month==9 || month==11) && day==31) {alert("Month "+month+" doesn't have 31 days!")return false;}if (month == 2) { // check for february 29thvar isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));if (day>29 || (day==29 && !isleap)) {alert("February " + year + " doesn't have " + day + " days!");return false; }}return true;}function isValidTime(timeStr) {// Time validation function courtesty of // Sandeep V. Tamhankar ([email protected]) -->// Checks if time is in HH:MM:SS AM/PM format.// The seconds and AM/PM are optional.var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;var matchArray = timeStr.match(timePat);if (matchArray == null) {alert("Time is not in a valid format.");return false;}hour = matchArray[1];minute = matchArray[2];second = matchArray[4];ampm = matchArray[6];if (second=="") { second = null; }if (ampm=="") { ampm = null }if (hour < 0 || hour > 23) {alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");return false;}if (hour <= 12 && ampm == null) {if (confirm("Please indicate which time format you are using. OK = Standard Time, CANCEL = Military Time")) {alert("You must specify AM or PM.");return false; }}if (hour > 12 && ampm != null) {alert("You can't specify AM or PM for military time.");return false;}if (minute < 0 || minute > 59) {alert ("Minute must be between 0 and 59.");return false;}if (second != null && (second < 0 || second > 59)) {alert ("Second must be between 0 and 59.");return false;}return true;}function dateDiff(dateform) {date1 = new Date();date2 = new Date();diff = new Date();if (isValidDate(dateform.firstdate.value) && isValidTime(dateform.firsttime.value)) { // Validates first date date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value);date1.setTime(date1temp.getTime());}else return false; // otherwise exitsif (isValidDate(dateform.seconddate.value) && isValidTime(dateform.secondtime.value)) { // Validates second date date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value);date2.setTime(date2temp.getTime());}else return false; // otherwise exits// sets difference date to difference of first date and second datediff.setTime(Math.abs(date1.getTime() - date2.getTime()));timediff = diff.getTime();weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));timediff -= weeks * (1000 * 60 * 60 * 24 * 7);days = Math.floor(timediff / (1000 * 60 * 60 * 24)); timediff -= days * (1000 * 60 * 60 * 24);hours = Math.floor(timediff / (1000 * 60 * 60)); timediff -= hours * (1000 * 60 * 60);mins = Math.floor(timediff / (1000 * 60)); timediff -= mins * (1000 * 60);secs = Math.floor(timediff / 1000); timediff -= secs * 1000;dateform.difference.value = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";return false; // form should never submit, returns false}// End --></script><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->
<form onsubmit="return dateDiff(this);"><table><tbody><tr><td><pre>First Date: Date: <input type="text" name="firstdate" value="" size="10" maxlength="10"> (MM/DD/YYYY format) Time: <input type="text" name="firsttime" value="" size="10" maxlength="10"> (HH:MM:SS format)Second Date: Date: <input type="text" name="seconddate" value="" size="10" maxlength="10"> (MM/DD/YYYY format) Time: <input type="text" name="secondtime" value="" size="10" maxlength="10"> (HH:MM:SS format)<input type="submit" value="Calculate Difference!">Date Difference:<br><input type="text" name="difference" value="" size="60"></pre></td></tr></tbody></table></form><!-- This script downloaded from www.JavaScriptBank.com Come to view and download over 2000+ free javascript at www.JavaScriptBank.com-->