1. ホーム
  2. javascript

[解決済み] moment jsで日付と時刻の文字列からam pmを取得する方法

2023-05-04 15:07:59

質問

以下のような文字列があります。 Mon 03-Jul-2017, 11:00 AM/PM という文字列があり、これを以下のような文字列に変換しなければなりません。 11:00 AM/PM のような文字列に変換する必要があります。

ここでの問題は AM または PM を日付時刻の文字列から削除します。

しています。

moment(Mon 03-Jul-2017, 11:00 AM, 'dd-mm-yyyy hh:mm').format('hh:mm A')

と表示され、正常に動作しています。 11:00 AM と表示され正常に動作していますが、もし文字列が PM が含まれている場合は AM が出力されます。

このように moment(Mon 03-Jul-2017, 11:00 PM, 'dd-mm-yyyy hh:mm').format('hh:mm A') はまた 11:00 AM の代わりに 11:00 PM

どのように解決するのですか?

入力をパースする際に、間違ったフォーマットトークンを使用しています。使用すべきは ddd は曜日名の省略形です。 DD は月日を表します。 MMM は月名の省略形。 YYYY で年号を表す。 hh1-12 時間 mm は分、そして AAM/PM . 参照 moment(String, String) のドキュメントを参照してください。

以下は動作するライブサンプルです。

console.log( moment('Mon 03-Jul-2017, 11:00 AM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
console.log( moment('Mon 03-Jul-2017, 11:00 PM', 'ddd DD-MMM-YYYY, hh:mm A').format('hh:mm A') );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>