0

+1日付が。の場合は追加したいですsunday。以下のコードは、残りの日付で機能します。しかし、私が合格すると、ではなく30 sept 2012私に与えます。コードの何が問題になっていますか?ご案内ください。月の最後の日付すべてで同じ問題に直面していると思いますが、日だけでなく日付全体に1を追加するにはどうすればよいですか?1 Sept 20121 Oct 2012dateMsg

var monthName=convertMnthNoToName(freeLookEndDt.getMonth()+1);

    if (freeLookEndDt.getDay()==0) {

      var date=new Date(freeLookEndDt.getFullYear(),freeLookEndDt.getMonth(),
      freeLookEndDt.getDate()+1);
      var newmonthName=convertMnthNoToName(date.getMonth()+1);
      var dateMsg = date.getDate() + '-' + monthName + '-' + freeLookEndDt.getFullYear();

      document.forms[0].flEndDt.value=dateMsg;

    }

およびconvertMnthNoToName()

function convertMnthNoToName(val)
{
    if(val==01 || val==1)
    {
      val1="Jan";
    }
    if(val==02 || val==2)
    {
      val1="Feb";   
    }
    if(val==03 || val==3)
    {
      val1="Mar";   
    }
    if(val==04 || val==4)
    {
      val1="Apr";   
    }
    if(val==05 || val==5)
    {
      val1="May";   
    }
    if(val==06 || val==6)
    {
      val1="Jun";   
    }
    if(val==07 || val==7)
    {
      val1="Jul";   
    }
    if(val==08 || val==8)
    {
      val1="Aug";   
    }
    if(val==09 || val==9)
    {
      val1="Sep";   
    }
    if(val==10)
    {
      val1="Oct";   
    }
    if(val==11)
    {
      val1="Nov";   
    }
    if(val==12)
    {
      val1="Dec";   
    }

    return val1;
}

どこfreeLookEndDt = Sun Sep 30 00:00:00 UTC+0530 2012

4

3 に答える 3

1

デモ

これはより効率的です。また、日を追加した後に月名を取得する必要があります

あなたの例の日付は、私の国では土曜日に解決されていることに注意してください!!!

var monthNames ="Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(",")

if (freeLookEndDt.getDay()==0) {
  freeLookEndDt.setDate(freeLookEndDt.getDate()+1);  
  var dateMsg = freeLookEndDt.getDate() + '-' + monthNames[freeLookEndDt.getMonth()] + '-' + freeLookEndDt.getFullYear();
  document.forms[0].flEndDt.value=dateMsg;
}

または、freeLookEndDate を保持する必要がある場合:

if (freeLookEndDt.getDay()==0) {
  var date = new Date(freeLookEndDt.getTime());
  date.setDate(date.getDate()+1);  
  var dateMsg = date.getDate() + '-' + monthNames[date.getMonth()] + '-' + date.getFullYear();
  document.forms[0].flEndDt.value=dateMsg;
}
于 2012-10-15T05:30:14.180 に答える
0

あなたは定義しますnewmonthNameが、使用しますmonthName。したがって、古い月の名前を使用しています。newmonthName変わるべきだった

あなたはただできるはずです freeLookEndDt.setDate(freeLookEndDt.getDate()+1)

于 2012-10-15T05:23:19.193 に答える
0

それ以外の

var date=new Date(freeLookEndDt.getFullYear(), freeLookEndDt.getMonth(),
                  freeLookEndDt.getDate()+1);

使用する

var date = new Date();
date.setFullYear(freeLookEndDt.getFullYear());
date.setMonth(freeLookEndDt.getMonth());
date.setDate(freeLookEndDt.getDate()+1);

そうすれば、最後のステップで日を設定することになり、Date は保存された月と年を再計算して正しい値にします。12 月 31 日がある場合は、年も変わる可能性があることに注意してください。

また、関数convertMnthNoToNameを変更して実装をよりコンパクトにし、「03」などの文字列入力値も処理できるようにすることができます。

完全なコード:

var monthName=convertMnthNoToName(freeLookEndDt.getMonth()+1);

if (freeLookEndDt.getDay()==0) {

    var date = new Date();
    date.setFullYear(freeLookEndDt.getFullYear());
    date.setMonth(freeLookEndDt.getMonth());
    date.setDate(freeLookEndDt.getDate()+1);
    var newmonthName=convertMnthNoToName(date.getMonth()+1);
    var dateMsg = date.getDate() + '-' + newmonthName + '-' + freeLookEndDt.getFullYear();

    document.forms[0].flEndDt.value=dateMsg;
}

/**
 * Converts month (1-based) to its string representation
 * @param {Number|String} val    Month index (from 1-January to 12-December)
 * @return {String}    String representation of month or empty string for invalid input parameter
 */
function convertMnthNoToName(val)
{
    val = parseInt(val); // string "01" will be converted to 1
    if(val>=1 && val<=12)
    {
        var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        return monthNames[val-1];
    }
    return "";
}
于 2012-10-15T05:27:44.947 に答える