JavaScript function for date processing using Regex

Code

<html>
<body>


var months = new Array("", "januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december");

function formatDate() {
   // declarations
   var result = "";
   var time = "";
   var source = "";

   // did we get a date argument (otherwise we get todays date)
   if (arguments.length == 1) {
      source = arguments[0];
   } else {
      var d = new Date();
      source = d.getDate() + "/" + d.getMonth() + "/" + d.getFullYear();
      time = " / kl. " + d.getUTCHours() + ":" + ((d.getUTCMinutes() ");
formatDate("01/07/2005");
document.write("
"); formatDate("11/07/2005"); document.write("
"); formatDate("10/09/2005 12:12:22"); </body> </html>

Output

var months = new Array(“”, “januar”, “februar”, “marts”, “april”, “maj”, “juni”, “juli”, “august”, “september”, “oktober”, “november”, “december”);

function formatDate() {
// declarations
var result = “”;
var time = “”;
var source = “”;

// did we get a date argument (otherwise we get todays date)
if (arguments.length == 1) {
source = arguments[0];
} else {
var d = new Date();
source = d.getDate() + “/” + d.getMonth() + “/” + d.getFullYear();
time = ” / kl. ” + d.getUTCHours() + “:” + ((d.getUTCMinutes() < 10) ? "0" : "") + d.getUTCMinutes();
}

// split to space if no arguments
if (arguments.length == 1) {
// trim to space if present
if (/(.*) .*/.test(arguments[0])) {
source = source.split(/ /)[0];
}
}

// we received an argument – check format
if (/d{2}/d{2}/d{4}.*/.test(source)) {
// we received a date
var date_parts = source.split(///);
result += date_parts[0].match(/0?(d{1,2})/)[1];
result += ". ";
result += months[date_parts[1]-0];
result += " ";
result += date_parts[2];
if (arguments.length == 0) {
result += time;
}

// print to browser
document.write(result);
}
}

formatDate();
document.write("
“);
formatDate(“01/07/2005”);
document.write(“
“);
formatDate(“11/07/2005”);
document.write(“
“);
formatDate(“10/09/2005 12:12:22”);