2017-09-25 54 views
0

時間戳棄用錯誤我使用轉換爲使用Moment.js

  • Moment.js

我試圖實現

什麼
  • 取一個字符串值從材料的日期選擇器

  • 將其轉換爲一個時間戳

我的問題

  • 我順利拿到從材料的日期選擇器選擇日期

  • 這將返回一串25/12/2017

  • 在按鈕命中時,我會調用一個測試函數,在該函數中嘗試將其轉換爲時間戳。我成功地做到這一點,但我收到一條錯誤控制檯:

棄用警告:時刻施工回落到JS日期。這是不鼓勵,將在即將到來的主要版本中被刪除。更多信息請參考https://github.com/moment/moment/issues/1407。 錯誤

問題

  • 如何避免這個錯誤?

我的HTML

<input #mdDatepicker mdInput [mdDatepicker]="picker" (focus)="picker.open()" required /> 
<label class="vs__input__label"> Date </label> 
<md-datepicker #picker></md-datepicker> 

我的測試功能

我已在代碼中的一些註釋,顯示什麼是打印到控制檯。

testingDate(value){ 

    console.log('value = ' + value) 
    // value = 11/9/2017 

    var newValue = moment(value).format(); 
    console.log('new value = ' + newValue) 
    // new value = 2017-11-09T00:00:00+00:00 

    var timestamp = moment(newValue).unix(); 

    console.log('new date = ' + timestamp); 
    // new date = 1510185600 

} 

任何幫助,這將是驚人的和讚賞!

+0

我擔心'value'和'newValue'不是JavaScript的日期,但它們的格式並不ISO 8601標準的字符串。你必須使用['moment(String,String)'](http://momentjs.com/docs/#/parsing/string-format/)。 – VincenzoC

+0

謝謝@VincenzoC - 你能否提供一個答案,請問該部分實際上會去哪裏?我也更新了我的問題以突出顯示我回來的價值 – MegaTron

回答

0

由於您的值與25/12/2017相似,因此您可以使用moment(value, 'DD/MM/YYYY')

請參閱moment(String, String)文檔。

你的代碼可能是這樣的:

testingDate(value){ 
    var m = moment(value, 'DD/M/YYYY'); 
    var newValue = m.format(); 
    var timestamp = m.unix(); 

    //var newProjectDate = value().unix(); 
    console.log('new project date = ' + timestamp); 
} 
+0

不錯!謝謝! - 這會消除錯誤。我希望你不介意我問。這很好地打印到控制檯。然而,在同一個月中選擇任何東西都會產生相同的結果。 – MegaTron

+0

謝謝@VincenzoC! – MegaTron