You are here: irt.org | FAQ | JavaScript | Date | Q1 [ next ]
<script language="JavaScript"><!-- function y2k(number) { return (number < 1000) ? number + 1900 : number; } function isDate (day,month,year) { // checks if date passed is valid // will accept dates in following format: // isDate(dd,mm,ccyy), or // isDate(dd,mm) - which defaults to the current year, or // isDate(dd) - which defaults to the current month and year. // Note, if passed the month must be between 1 and 12, and the // year in ccyy format. var today = new Date(); year = ((!year) ? y2k(today.getYear()):year); month = ((!month) ? today.getMonth():month-1); if (!day) return false var test = new Date(year,month,day); if ( (y2k(test.getYear()) == year) && (month == test.getMonth()) && (day == test.getDate()) ) return true; else return false } if (isDate(31,2,1997)) document.write("Valid"); else document.write("Invalid"); //--></script>
The following was submitted by Sean Scott
Try this function. It takes a date object and a format string and returns a date string. Remember to create a date object first, eg:
var myDate = new Date(); alert(formatDate(myDate, "ww, mmmm, d, yy"));
<script language="JavaScript"><!-- //************************************************************************************** // Name: formatDate // // Description: Formats a date using a format string. // d or dd represents the day of the month (eg 1 or 01) // m or mm represents the month as a number (eg 1 or 01) // mmm or mmmm represents the month as a string (eg Jan or January) // y or yy represents the year (eg 99 or 1999) // w or ww represents the day of the week (eg Mon or Monday) // example: formatDate(myDate, "mm/dd/yy") might look like 01/01/2000 // Parameters: strFullDate - required - the date to display (a date object) // strFormatString - required - a format string // //************************************************************************************** function formatDate(strFullDate, strFormatString) { var strMonths = new Array(); var strDay = new Array(); strMonths[0] = "January"; strMonths[1] = "February"; strMonths[2] = "March"; strMonths[3] = "April"; strMonths[4] = "May"; strMonths[5] = "June"; strMonths[6] = "July"; strMonths[7] = "August"; strMonths[8] = "September"; strMonths[9] = "October"; strMonths[10] = "November"; strMonths[11] = "December"; strDay[0] = "Sunday"; strDay[1] = "Monday"; strDay[2] = "Tuesday"; strDay[3] = "Wednesday"; strDay[4] = "Thursday"; strDay[5] = "Friday"; strDay[6] = "Saturday"; var strValue_d = strFullDate.getDate(); var strValue_dd = (strValue_d < 10) ? '0' + strValue_d : strValue_d; var strValue_m = strFullDate.getMonth() + 1; var strValue_mm = (strValue_m < 10) ? '0' + strValue_m : strValue_m; var strValue_mmmm = strMonths[strFullDate.getMonth()]; var strValue_mmm = strValue_mmmm.substr(0,3); var strValue_yy = strFullDate.getYear() + 1900 + ""; var strValue_y = strValue_yy.substr(2,2); var strValue_ww = strDay[strFullDate.getDay()]; var strValue_w = strValue_ww.substr(0,3); if (strFormatString.indexOf("dd") > -1) { strFormatString = strFormatString.replace("dd", "strValue_dd"); } else { if (strFormatString.indexOf("d") > -1) { strFormatString = strFormatString.replace("d", "strValue_d"); } } if (strFormatString.indexOf("mmmm") > -1) { strFormatString = strFormatString.replace("mmmm", "strValue_mmmm"); } else { if (strFormatString.indexOf("mmm") > -1) { strFormatString = strFormatString.replace("mmm", "strValue_mmm"); } else { if (strFormatString.indexOf("mm") > -1) { strFormatString = strFormatString.replace("mm", "strValue_mm"); } else { if (strFormatString.indexOf("m") > -1) { strFormatString = strFormatString.replace("m", "strValue_m"); } } } } if (strFormatString.indexOf("yy") > -1) { strFormatString = strFormatString.replace("yy", "strValue_yy"); } else { if (strFormatString.indexOf("y") > -1) { strFormatString = strFormatString.replace("y", "strValue_y"); } } if (strFormatString.indexOf("ww") > -1) { strFormatString = strFormatString.replace("ww", "strValue_ww"); } else { if (strFormatString.indexOf("w") > -1) { strFormatString = strFormatString.replace("w", "strValue_w"); } } strFormatString = strFormatString.replace("strValue_dd", strValue_dd); strFormatString = strFormatString.replace("strValue_d", strValue_d); strFormatString = strFormatString.replace("strValue_mmmm", strValue_mmmm); strFormatString = strFormatString.replace("strValue_mmm", strValue_mmm); strFormatString = strFormatString.replace("strValue_mm", strValue_mm); strFormatString = strFormatString.replace("strValue_m", strValue_m); strFormatString = strFormatString.replace("strValue_yy", strValue_yy); strFormatString = strFormatString.replace("strValue_y", strValue_y); strFormatString = strFormatString.replace("strValue_ww", strValue_ww); strFormatString = strFormatString.replace("strValue_w", strValue_w); return strFormatString; } //--></script>