0

週、前、次の3つのボタンがあります。週のボタンをクリックすると、テキストボックスで選択された日付とそれに追加された6日が表示されます(for example 26 Jun 2013-2 Jul 2013 )。前のボタンをクリックすると19 Jun 2013-26 Jun 2013、テキストボックスのように表示されます。次のボタンをクリックすると2 Jul 2013-8 Jul 2013、テキストボックスに表示されます。そして、プロセスは続きますjavascript

enter code here


 <input type="text" id="txtdatetimeshow" readonly="readonly"  
   style="height: 25px; width: 150px;
   font-size: medium; font-family: Times New Roman;"   runat="server"    />

    <input type="button" id="showweekbtn" runat="server" value="week"/>
    <input type="button" id="sfprevbtn" runat="server" value="prev"/>
    <input type="button" id="sfnextbtn" runat="server" value="next"/>

<script type="text/javascript">
$(document).ready(function()
    {

    var today=new Date();
    var date=today.getDate();
    var month=today.getMonth();
    var year= today.getFullYear();
    var month_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",   
    "Aug", "Sep", "Oct", "Nov", "Dec");

    var NextDate= new Date(year, month, date);//today's date
    var weekdate=new Date(NextDate);
    weekdate.setDate(weekdate.getDate()+6);//add 6 days to the date
    var Ndate=NextDate.getDate()+" "+month_names[month]+"  "+NextDate.getFullYear()+"-"+" "+weekdate.getDate()+"   "+month_names[weekdate.getMonth()]+" "+weekdate.getFullYear();

    var nextWeekDate=new Date(weekdate);
    nextWeekDate.setDate(weekdate.getDate()+6);
    var NWdate=weekdate.getDate()+" "+month_names[weekdate.getMonth()]+" "+weekdate.getFullYear()+"-"+""+nextWeekDate.getDate()+"  "+month_names[nextWeekDate.getMonth()]+" "+nextWeekDate.getFullYear();

    var prevWeekDate=new Date(NextDate);
    prevWeekDate.setDate(NextDate.getDate()-6);//subtract 6 days to date
    var PWdate=prevWeekDate.getDate()+" "+month_names[prevWeekDate.getMonth()]+" "+prevWeekDate.getFullYear()+"-"+NextDate.getDate()+"  "+month_names[NextDate.getMonth()]+" "+NextDate.getFullYear();

    //to show previous date
    $("#sfprevbtn").click(function() 
        {
       var prevDate=new Date(year,month,date-1);
       var pdate=prevDate.getDate()+" "+month_names[month] +" "+prevDate.getFullYear();
       $("#txtdatetimeshow").val(PWdate);

    });
    //to show next date
    $("#sfnextbtn").click(function()
         {

        var nextDate=new Date(year,month,date+1);
        var Ndate=nextDate.getDate()+" "+month_names[month] +" "+nextDate.getFullYear();
        $("#txtdatetimeshow").val(NWdate);
    });

        //to show week view
        $("#showweekbtn").click(function() 
        {
          $("#txtdatetimeshow").val(Ndate);

         });


          });

</script>
4

4 に答える 4

0

あなたが望むと思うのは、現在の週の前後の 1 週間を超えて、次/前のボタンをクリックすると、週の範囲を増減し続ける JavaScript です。

元のコードの問題は、次/前のボタンが実際には値を変更しなかったため、実際には次/前の週の文字列をハードコーディングしていたことです。私はあなたが探している(私が望んでいることを)行うあなたのコードに基づいていくつかのコードを書きました:

$(document).ready(function()
{
    var current=new Date();
    var month_names = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",   
    "Aug", "Sep", "Oct", "Nov", "Dec");
    getWeek(0);

    //to show previous date
    $("#sfprevbtn").click(function() 
    {
       getWeek(-1);
    });

    //to show next date
    $("#sfnextbtn").click(function()
    {
        getWeek(1);
    });

    //to show week view
    $("#showweekbtn").click(function() 
    {
        current=new Date();
        getWeek(0);
    });

    function getWeek(weeks){
        current = new Date(current.getTime() + weeks * 6 * 24 * 60 * 60 * 1000)
        var newDate = new Date(current.getTime() + 6 * 24 * 60 * 60 * 1000);
        var dateString=current.getDate()+" "+month_names[current.getMonth()] +" "+current.getFullYear() + " - " + newDate.getDate()+" "+month_names[newDate.getMonth()] +" "+newDate.getFullYear();
        $("#txtdatetimeshow").val(dateString);
    }
});

最初の日付に基づいて次の週の間隔を計算する関数 getWeek() を作成したことに注意してください。「現在の」日付は今日の日付から始まりますが、次/前をクリックして異なる週間隔を表示すると、それに応じて増減します。「週」ボタンはこの時点では特に必要ありませんが、そのままにしておいたので、クリックすると現在の日付の週に戻ります。

これがお役に立てば幸いです。これがあなたが探しているものでない場合は、お知らせください。さらにお手伝いさせていただきます。スクリプト作成をお楽しみください。

于 2013-06-26T16:59:48.790 に答える
0

これを試して:

関数displayDate() {

var 今日 = 新しい日付 ();

        var date=today.toISOString().slice(0, -14);
        // Strip last 14 characters, ISO format is like
        // 2012-12-30T17:41:49.027Z but we want
        // 2012-12-30

        document.getElementById("fname").value=date;
     }
于 2014-01-31T09:30:49.963 に答える
0

別の回答へのコメントを検討してください:

JavaScript

var date = new Date();

/* IMPORTANT PART */
date.setDate(date.getDate() + 6);
/* ------ */
var d = (date.getDate().toString()+" "+(parseInt(date.getMonth(),10) +1)+ " "+date.getFullYear().toString()).split(" ");

if(d[0].length == 1)
    d[0] = "0"+d[0];

if(d[1].length == 1)
    d[1] = "0"+d[1];

alert(d.join(" "));
于 2013-06-26T17:07:48.870 に答える