2016-08-23 68 views
2

以下方法以此格式Wed Sep 14 2016 00:00:00 GMT+0400將日期發送到文本框。 所以我試圖用字符串的方法來獲取日期這種格式Sep 14 2016使用子字符串格式化JavaScript日期

我試圖在它下面的代碼,但沒有奏效

它返回該錯誤Uncaught TypeError: date.substring is not a function

<script> 
    $(document).ready(function() { 
     var dateval = $('#<%= txtdate.ClientID %>').val(); 
     if (dateval != '') { 

      var options = { 
       selectedDate: dateval, 
       size: 'medium', 
       width: 960 
      } 
     } else { 
      var options = { 
       size: 'medium', 
       width: 960 
      } 
     } 
     $('#paginator').datepaginator(options); 
     $('#paginator').on('selectedDateChanged', function (event, date) { 
      $('#<%= txtdate.ClientID %>').val(date.substring(4, 12)); 
     }); 
    }); 
</script> 
+0

你不應該分析你自己的日期。改爲使用[moment.js](http://momentjs.com)。 – str

回答

1

您必須日期轉換爲字符串,然後用子串

這樣

$('#<%= txtdate.ClientID %>').val(date.toString().substring(4, 12)); 
3

使用Array.prototype.slice功能。

var date = 'Wed Sep 14 2016 00:00:00 GMT+0400'; 
var formatted = date.split(' ').slice(1, 4).join(' '); 

因爲date.constructorDate功能,不String你得到了一個錯誤。要將其轉換爲字符串,您可以使用date.toString()或簡單地date + ''。轉換爲字符串後,您可以撥打date.substr(4, 11)。請注意,如果您輸入的是12而不是11,則最終會有額外的空間。

另外,substrsubstring之間有區別。第一個需要一個字符串的開始位置和長度,而第二個需要一個字符串的開始位置和結束位置。