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>