web-dev-qa-db-ja.com

モーメントの日付を文字列に変換し、モーメントオブジェクトを削除する方法

React= WebアプリとReact=ネイティブモバイルアプリ。ReactWebアプリからバックエンドに瞬間日付オブジェクトを渡すと、変換されます何とか文字列にそれは私のバックエンドで動作します。

React Nativeモバイルアプリでそれを行うと、日付がモーメントオブジェクトとして渡され、文字列に変換されず、機能しません。

Momentオブジェクトを次のような単純な文字列に変換する方法はありますか

"Tue May 05 2015 23:59:59 GMT+0800 (HKT)"

ToString()とtoUTCString()を試しましたが、動作しません。ありがとう。

14
Kelvin

moment().format() を使用して、日付からフォーマットされた文字列を作成します。

console.log(moment().format())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>

ただし、バージョン2.1.0+( link )を使用している場合、toStringは機能するはずです。

console.log(moment().toString())
console.log(typeof moment().toString())
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
24
kevguy

Javascript Dateオブジェクトにのみ存在するメソッドを呼び出そうとしています。これらのメソッドを呼び出すには、最初にMomentオブジェクトをプレーンなDateオブジェクトに変換する必要があります。これを行うには、Momentオブジェクトで .toDate() メソッドを使用できます。

var plainDate = moment().toDate();
console.log(plainDate.toUTCString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>

ただし、Momentオブジェクトを文字列に変換するより直接的な方法は、 .format() メソッドを使用することです。このメソッドは、2014-09-08T08:02:17-05:00のような「ISO 8601」標準として出力されます。

console.log( moment().format() );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
7
Soviut