私はローカルのutcの日付文字列を取得するのにmoment.jsとmoment-timezoneを使用しています。私はこれを達成するために以下の関数を作成しました。アラビア語のロケールを扱うときにこれを使用しようとすると無効な日付が返されます。私は、次のパラメータ_getLocalUtcDateString("11/2/2016 4:45:47 PM", "America/New_York")
でそれを呼び出し、それが無効な日付で失敗moment.locale('ar')
を設定した場合アラビア語のロケールを扱うときにローカルのUTCの日付文字列を適切にフォーマットする
function _getLocalUtcDateString(utcDateString, timezoneId) {
var utcMoment = moment.utc(utcDateString, 'MM/DD/YYYY hh:mm:ss A').format('MM/DD/YYYY hh:mm:ss A');
var localTimeTz = moment.utc(utcMoment).tz(timezoneId).format('MM/DD/YYYY hh:mm:ss A');
return localTimeTz;
}
。問題は、utcMoment
であると思われます.lacaleがアラビア語の場合、١١/٠٢/٢٠١٦ ٠٤:٤٥:٤٧ ص
となり、moment.utc(utcMoment).tz(timezoneId).format('MM/DD/YYYY hh:mm:ss A');
が失敗します。
:
は、次の作業のスニペットに示すように、あなたは、単に、あなたの関数の最初の行に不要なformat()
を削除することができ、問題を解決するにはアラビア語では米国の書式を使用していますか?これが米国のアラビア語読者の場合、ロケールは米国であり、言語はアラビア語です。 – RobG