Hi everone,
I have this script for a due date (pregnancy) calculator. But I want to change the date input from mm/dd/yyyy to yyyymmdd. Notice the slashes are gone. If that is difficult, it would be ok with yyyy-mm-dd. The date presentation I have fixed already, but the date input I cannot manage. I am a javascript noob! Can somebody please help?
[CODE]<HEAD>
<SCRIPT LANGUAGE=”JavaScript”>
function isValidDate(dateStr) {
var datePat = /^(d{1,2})(/|-)(d{1,2})2(d{4})$/;
var matchArray = dateStr.match(datePat);
if (matchArray == null) {
alert(“Ogiltigt datumformat.”)
return false;
}
year = matchArray[4];
month = matchArray[1];
day = matchArray[3];
if (month < 1 || month > 12) {
alert(“Månad måste vara 1 – 12.”);
return false;
}
if (day < 1 || day > 31) {
alert(“Dag måste vara 1 – 31.”);
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert(“Månaden “+month+” har inte 31 dagar!”)
return false;
}
if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day>29 || (day==29 && !isleap)) {
alert(“Februari ” + year + ” har inte ” + day + ” dagar!”);
return false;
}
}
return true;
}
function dispDate(dateObj) {
year = dateObj.getYear();
if (year < 2000) year += 1900;
month = dateObj.getMonth()+1;
month = (month < 10) ? “0” + month : month;
day = dateObj.getDate();
day = (day < 10) ? “0” + day : day;
return (year + ” ” + month + ” ” + day);
}
function pregnancyCalc(pregform) {
menstrual = new Date();
ovulation = new Date();
duedate = new Date();
today = new Date();
cycle = 0, luteal = 0;
if (isValidDate(pregform.menstrual.value)) {
menstrualinput = new Date(pregform.menstrual.value);
menstrual.setTime(menstrualinput.getTime())
}
else return false;
cycle = (pregform.cycle.value == “” ? 28 : pregform.cycle.value);
if (pregform.cycle.value != “” && (pregform.cycle.value < 22 || pregform.cycle.value > 45)) {
alert(“Your cycle length is either too short or too long for n”
+ “calculations to be very accurate! We will still try to n”
+ “complete the calculation with the figure you entered. “);
}
luteal = (pregform.luteal.value == “” ? 14 : pregform.luteal.value);
if (pregform.luteal.value != “” && (pregform.luteal.value < 9 || pregform.luteal.value > 16)) {
alert(“Your luteal phase length is either too short or too long for n”
+ “calculations to be very accurate! We will still try to complete n”
+ “the calculation with the figure you entered. “);
}
ovulation.setTime(menstrual.getTime() + (cycle*86400000) – (luteal*86400000));
pregform.conception.value = dispDate(ovulation);
duedate.setTime(ovulation.getTime() + 266*86400000);
pregform.duedate.value = dispDate(duedate);
var fetalage = 14 + 266 – ((duedate – today) / 86400000);
weeks = parseInt(fetalage / 7);
days = Math.floor(fetalage % 7);
fetalage = weeks + “” + (weeks > 1 ? “” : “”) + ” + ” + days + ” dag(ar)”;
pregform.fetalage.value = fetalage;
return false;
}
</script>
</HEAD>
<center>
<form onSubmit=”return pregnancyCalc(this);”>
<table>
<tr><td>
<pre style=”font-family : verdana, arial, sans-serif”>
<br><center><b>1:a dagen i senaste<br>menstruationen:</b><br><input type=text name=menstrual value=”” size=10 maxlength=10><br>(MM/DD/ÅÅÅÅ)<br><br><b>Menscykel:</b><br><input type=text name=cycle value=”” size=2 maxlength=2><br>(normalt 28 dagar)<br><br><b>Lutealfasens längd:</b><br><input type=text name=luteal value=”” size=2 maxlength=2><br>(normalt 14 dagar)<br><br><center><input type=submit value=”Beräkna!”></center><br><b>Befruktningsdatum:</b><br><input type=text name=conception value=”” size=20><br><b>Födelsedatum:</b><br><input type=text name=duedate value=”” size=20><br><b>Du är i vecka:</b><br><input type=text name=fetalage value=”” size=20></center></pre></td></tr></table></form></center><center>Läs mer om beräknat<br><a href=”http://javascriptsource.com”>förlossningsdatum</a>
</center><br>