date-parse-test.html [plain text]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>test of JavaScript date parsing</title>
</head>
<body>
<script type="text/javascript">
function call(functionName, parameter)
{
try {
result = eval(functionName + "(parameter)");
} catch (e) {
result = "exception";
}
return result;
}
var failureCount = 0;
function test(functionName, parameter, desiredResult)
{
var result = call(functionName, parameter);
if (result != desiredResult && !(isNaN(result) && isNaN(desiredResult))) {
var s = "called " + functionName + " on " + parameter + " and got " + result + " instead of " + desiredResult;
document.writeln("<p>" + s + "</p>");
failureCount += 1;
return 0;
}
return 1;
}
function testDateParse(date, numericResult)
{
if (test("Date.parse", date, numericResult)) {
test("Date.parse", date.toUpperCase(), numericResult);
test("Date.parse", date.toLowerCase(), numericResult);
}
}
var o = Date.parse(" Dec 25 1995 1:30 ") - Date.parse(" Dec 25 1995 1:30 GMT ");
testDateParse("Dec 25 1995 GMT", 819849600000);
testDateParse("Dec 25 1995", 819878400000);
testDateParse("Dec 25 1995 1:30 GMT", 819855000000);
testDateParse("Dec 25 1995 1:30", 819855000000 + o);
testDateParse("Dec 25 1995 1:30 ", 819855000000 + o);
testDateParse("Dec 25 1995 1:30 AM GMT", 819855000000);
testDateParse("Dec 25 1995 1:30 AM", 819855000000 + o);
testDateParse("Dec 25 1995 1:30AM", 819855000000 + o);
testDateParse("Dec 25 1995 1:30 AM ", 819855000000 + o);
testDateParse("Dec 25 1995 13:30 GMT", 819898200000);
testDateParse("Dec 25 1995 13:30", 819898200000 + o);
testDateParse("Dec 25 1995 13:30 ", 819898200000 + o);
testDateParse("Dec 25 1995 1:30 PM GMT", 819898200000);
testDateParse("Dec 25 1995 1:30 PM", 819898200000 + o);
testDateParse("Dec 25 1995 1:30PM", 819898200000 + o);
testDateParse("Dec 25 1995 1:30 PM ", 819898200000 + o);
testDateParse("Dec 25 1995 UTC", 819849600000);
testDateParse("Dec 25 1995 UT", 819849600000);
testDateParse("Dec 25 1995 PST", 819878400000);
testDateParse("Dec 25 1995 PDT", 819874800000);
testDateParse("Dec 25 1995 1:30 UTC", 819855000000);
testDateParse("Dec 25 1995 1:30 UT", 819855000000);
testDateParse("Dec 25 1995 1:30 PST", 819883800000);
testDateParse("Dec 25 1995 1:30 PDT", 819880200000);
testDateParse("Dec 25 1995 1:30 PM UTC", 819898200000);
testDateParse("Dec 25 1995 1:30 PM UT", 819898200000);
testDateParse("Dec 25 1995 1:30 PM PST", 819927000000);
testDateParse("Dec 25 1995 1:30 PM PDT", 819923400000);
testDateParse("Dec 25 1995 XXX", 819849600000);
testDateParse("Dec 25 1995 1:30 XXX", 819855000000);
testDateParse("Dec 25 1995 1:30 U", 819855000000);
testDateParse("Dec 25 1995 1:30 V", 819855000000);
testDateParse("Dec 25 1995 1:30 W", 819855000000);
testDateParse("Dec 25 1995 1:30 X", 819855000000);
testDateParse("Dec 25 1995 0:30 GMT", 819851400000);
testDateParse("Dec 25 1995 0:30 AM GMT", NaN);
testDateParse("Dec 25 1995 0:30 PM GMT", NaN);
testDateParse("Dec 25 1995 12:30 AM GMT", 819851400000);
testDateParse("Dec 25 1995 12:30 PM GMT", 819894600000);
testDateParse("Dec 25 1995 13:30 AM GMT", NaN);
testDateParse("Dec 25 1995 13:30 PM GMT", NaN);
testDateParse("Anf 25 1995 GMT", NaN);
testDateParse("Wed Dec 25 1995 1:30 GMT", 819855000000);
testDateParse("Dec 25" + String.fromCharCode(9) + "1995 13:30 GMT", 819898200000);
testDateParse("Dec 25" + String.fromCharCode(10) + "1995 13:30 GMT", 819898200000);
var failuresMessage;
if (failureCount) {
failuresMessage = failureCount + " tests failed.";
} else {
failuresMessage = "No failures.";
}
document.writeln("<p>Testing complete. " + failuresMessage + "</p>");
</script>
</body>
</html>