2016-03-20 28 views
0

我已閱讀了關於類似問題的各種帖子,但都沒有解決我的問題。moment.js和棄用的警告。時間戳記到時刻日期對象

我操作了moment.js日期對象,然後將其存儲爲時間戳。

但是,當我嘗試再次讀取該時間戳時,我收到了不推薦使用的警告。

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

我試過了toDate(),format(),moment(myTimeStamp,'ddd,DD MMM YYYY HH:mm:ss ZZ'); - > all generate警告...

因此,舉例來說,我的時間戳將是這樣的:

常量時間戳=「1458586740000」

,當我讀了回來,並嘗試解析出月/日/年,然後是小時/分鐘上午/下午等等...我需要將該時間戳記寫入一個moment.js對象,沒有任何對我有用的任何想法

我怎樣才能得到這個時間戳:'1458586740000',到一個moment.js對象,所以我可以從它提取日期日期,因爲我需要?

編輯:這是我如何存儲時間戳。所以我需要從中檢索它。

let timeStamp = Moment(state[_Date]) 
          .add({ hour: state[AMPM] === 'PM' 
             ? +state[Hour] + 12 
             : state[Hour] , 
            minute: state[Min] }).format('x') 
+0

你試過'moment.unix(timestamp).format(「MM/DD/YYYY」)嗎? –

+0

您是否嘗試閱讀關聯的問題? *「如果你真的想要這種行爲只是做'時刻(新日期(」包含日期的隨機字符串「))」「*。 – jonrsharpe

+0

因此,最終變量timeStamp被存儲在數據庫中,然後再次拉出並解析?我幾乎可以肯定你最終傳遞給構造函數的數據有什麼問題,但我不知道基於這個代碼的是什麼。這將給你一個unix偏移量作爲一個字符串,應該沒問題。需要從調試器知道到底是什麼被傳遞到構造函數中。我想你可能有無關的主角或什麼的。 –

回答

2

X標記指示以秒爲單位的unix時間戳,並且x標記指示unix毫秒時間戳(offset)。 你似乎有一毫秒的時間戳,所以你會做一會兒出來的通過執行以下操作:

var a = moment('1458586740000', 'x') 

它的工作原理不「,以及:

var a = moment(1458586740000, 'x') 

你也可以不指定x和它應該工作:

moment(1458586740000) 

因爲你有一個UNIX偏移(毫秒),而不是一個UNIX時間戳(秒),moment.unix是不是你想要的。

然後你就可以做到以下幾點:

a.format() 
"2016-03-21T13:59:00-05:00" 

或者你可以使用任何這裏列出輸出其他格式標記任何導致你想的:根據您所提供的代碼http://momentjs.com/docs/#/displaying/format/

,我認爲你可能會遇到問題,因爲你的時間戳存儲爲一個字符串(在'')。作爲字符串解析會導致無效的日期錯誤,因爲它會嘗試匹配ISO 8601格式並失敗。指定'x'令牌將導致它假定unix偏移並正常工作。

+0

謝謝 - 但它沒有工作,是的 - 我以前嘗試過這種方法。所以,是的,我有一個代表這個的字符串:請參閱我更新的原始帖子。這是我如何「存儲」它,也許它可以增加洞察力,我需要如何提取它。 –