pb81Medlem sedan okt. 200688 inlägg Hejsan!
Jag har två fält där man skall ange datum (2009-12-17), FromDate och ToDate. Det jag vill få till nu är att om man anger ett datum FromDatefältet så skall ToDatefältet plusa på med en dag med onChange. Och ändrar man i ToDate så skall FromDate bli minus en dag.
Går detta o lösa på ett smidigt sätt. Och det är viktigt att datumet skrivs in i rätt format.
Mvh // Paul
JojoxxMedlem sedan juni 20004 308 inlägg <script type="text/javascript">
Date.prototype.format=function(str){
str=str.replace(/%D/g,("0"+this.getDate()).substring(("0"+this.getDate()).length-2));
str=str.replace(/%Y/g,this.getFullYear());
str=str.replace(/%N/g,("0"+(this.getMonth()+1)).substring(("0"+(this.getMonth()+1)).length-2));
return str;
}
Date.prototype.fromStr=function(str){
var d=new Date(0);
var p=(p)?p:str.match(/(\d+)\-(\d+)\-(\d+)/); p=(p)?p.concat(0,0,0,0):p;
if(p){ d.setFullYear(p[1]); d.setMonth(p[2]-1); d.setDate(p[3]); }
return d;
}
</script>
<form>
Fr o m <input type="text" name="FromDate" onchange="var d=new Date().fromStr(this.value).getTime(); if(d>0){ this.form.ToDate.value=new Date(d+86400000).format('%Y-%N-%D'); }">
T o m <input type="text" name="ToDate" onchange="var d=new Date().fromStr(this.value).getTime(); if(d>0){ this.form.FromDate.value=new Date(d-86400000).format('%Y-%N-%D'); }">
</form>
pb81Medlem sedan okt. 200688 inlägg Fungerade ju kanon.
Kom dock på en sak som måste fungera oxå. jag ändrade lite och ökade till 3 dagar nu.. men om spannet är mindre än 3 dagar så måste man kunna sätta det. typ 2009-12-16 - 2009-12-17, dvs den skall inte ändras tre dagar då.
JojoxxMedlem sedan juni 20004 308 inlägg <script type="text/javascript">
Date.prototype.format=function(str){
str=str.replace(/%D/g,("0"+this.getDate()).substring(("0"+this.getDate()).length-2));
str=str.replace(/%Y/g,this.getFullYear());
str=str.replace(/%N/g,("0"+(this.getMonth()+1)).substring(("0"+(this.getMonth()+1)).length-2));
return str;
}
Date.prototype.fromStr=function(str){
var d=new Date(0);
var p=(p)?p:str.match(/(\d+)\-(\d+)\-(\d+)/); p=(p)?p.concat(0,0,0,0):p;
if(p){ d.setFullYear(p[1]); d.setMonth(p[2]-1); d.setDate(p[3]); }
return d;
}
var ddays=3;
</script>
<form>
Fr o m <input type="text" name="FromDate" onchange="var d=new Date().fromStr(this.value).getTime(); if(d>0 && (new Date().fromStr(this.form.ToDate.value).getTime()>d+86400000*ddays || !this.form.ToDate.value || new Date().fromStr(this.form.ToDate.value).getTime()<=d)){ this.form.ToDate.value=new Date(d+86400000*ddays).format('%Y-%N-%D'); }">
T o m <input type="text" name="ToDate" onchange="var d=new Date().fromStr(this.value).getTime(); if(d>0 && (new Date().fromStr(this.form.FromDate.value).getTime()<d-86400000*ddays || !this.form.FromDate.value || new Date().fromStr(this.form.FromDate.value).getTime()>=d)){ this.form.FromDate.value=new Date(d-86400000*ddays).format('%Y-%N-%D'); }">
</form>