Datumfält som uppdaterar varandra

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pb81
    Medlem
    • 2006-10-14
    • 88

    #1

    Datumfält som uppdaterar varandra

    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
  • Jojoxx
    Moderator
    • 2000-06-18
    • 4306

    #2
    [kod]
    <script type="text/javascript">
    Date.prototype.format=function(str){
    str=str.replace(/%D/g,("0"+this.getDate()).substring(("0"+this.getDate()).lengt h-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);
    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>
    [/kod]
    / Jojoxx

    "Always remember that you're unique and special, just like everyone else..."

    Comment

    • pb81
      Medlem
      • 2006-10-14
      • 88

      #3
      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å.

      Comment

      • Jojoxx
        Moderator
        • 2000-06-18
        • 4306

        #4
        [kod]
        <script type="text/javascript">
        Date.prototype.format=function(str){
        str=str.replace(/%D/g,("0"+this.getDate()).substring(("0"+this.getDate()).lengt h-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);
        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>
        [/kod]
        / Jojoxx

        "Always remember that you're unique and special, just like everyone else..."

        Comment

        Working...