2017-11-26 22 views
0

選択した月の最初の日付を表示したいのですが、日付のフォーマットに正しいフォーマットが表示されません。jQuery、フォーマットの日付に正しいフォーマットが表示されない

私はこの2017年1月11日のようにそれを表示したいのですが、それはこの

水曜日2017年11月1日00:00:00 GMT + 0100(CET)

のように表示されます
Select a Date: <input type="date" id="theDate" onmouseout="getTheDays()"/> 
<p>First Day of the Month: <label id="fday"></label></p> 
<p>Last Day of the Month: <label id="lday"></label></p> 

<script> 
    function getTheDays() { 

     var dt = new Date($('#theDate').val()); 

     // GET THE MONTH AND YEAR OF THE SELECTED DATE. 
     var month = dt.getMonth(), 
      year = dt.getFullYear(); 

     // GET THE FIRST AND LAST DATE OF THE MONTH. 
     var FirstDay = new Date(year, month, 1); 
     var LastDay = new Date(year, month + 1, 0); 

     // FINALLY, GET THE DAY. 
     var weekday = new Array(); 
     weekday[0] = "Sunday"; 
     weekday[1] = "Monday"; 
     weekday[2] = "Tuesday"; 
     weekday[3] = "Wednesday"; 
     weekday[4] = "Thursday"; 
     weekday[5] = "Friday"; 
     weekday[6] = "Saturday"; 


     if (typeof weekday[FirstDay.getDay()] != 'undefined') {  // CHECK FOR 'undefined'. 
      $('#fday').html(FirstDay.toString('dd-MM-yy')); 
     } 
     else { 
      $('#fday').text(''); 
      $('#lday').text(''); 
     } 
    } 
</script> 
+0

@Jacobは素晴らしい答えを与えましたが、日付オブジェクトの "toString"タイプのメソッドにはパラメータがないことを知っておく必要があります。それがあなたの問題でした。 –

答えて

2

私はここに、あなたと私たちのtoShortDate機能を共有するあなたは、次のとおりです。

function toShortDate(date) { 
    if (!date) { 
     return '--/--/--'; 
    } 
    var d = new Date(Date.parse(date)), 
     days = d.getDate(), 
     month = (d.getMonth() + 1), 
     finalDays = days < 10 ? '0' + days : '' + days, 
     finalMonth = month < 10 ? '0' + month : '' + month; 

    return finalDays + 
     "/" + finalMonth + 
     "/" + d.getFullYear().toString().substr(2, 2); 
} 

この機能は、今のところ生産現場で機能しており、完全に機能します。がんばろう。

+0

時刻表記機能を見つけるためにインターネットを閲覧している場合、タイムゾーンが要因である場合、このjavascriptは確実に使用できないことに注意してください。たとえば、CodePenでこれを実行すると、(あなたがCodePenと同じタイムゾーンに住んでいない限り)確実に別のタイムゾーンの日付オブジェクトになります。私の場合、現在の時刻のために、フォーマットされた日付は、私が選んだ日の1日後にフォーマットされます。 –

+0

それは本当です、あなたのノートに感謝します。このコードはタイムゾーンの違いを処理しません。これはパラメータとして取得する日付をフォーマットするだけです(この質問で要求されたとおり)。しかし、私たちのアプリケーションはマルチカルチャーですが、サーバ(WebAPI)とJavaScriptの間の中間層によってタイムゾーン変換が行われます。私はほとんどのアプリケーションがこのようにWebAPIとJSON変換の機能でこのように構築されているように(少なくとも行うべきだと)思う。 – Jacob

関連する問題