<< DOCTYPE in Domino | Home | Those guys at Lotus Support sometimes makes me laugh... >>

JavaScript function for date processing using Regex

Code

<html>
<body>
<script type="text/javascript">

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("<br>");
formatDate("01/07/2005");
document.write("<br>");
formatDate("11/07/2005");
document.write("<br>");
formatDate("10/09/2005 12:12:22");

</script>
</body>
</html>

Output