3

アプリケーションの日付文字列を生成するために JQuery Calendars を使用しています。言語を英語に設定すると、次のような日付文字列が得られます。

金曜日 • 2014 年 10 月 10 日

JQ Calendars は時間を処理しないため、文字列の時間部分を自分でフォーマットします。

[ • 午前 12:00 UTC-04:00]</p>

(わかりやすくするために括弧が含まれています。最終的な文字列の一部にはなりません。) 次に、これら 2 つの文字列を一緒に追加すると、次のようになります。

金曜日 • 2014 年 10 月 10 日 [ • 午前 12:00 UTC-04:00]

これはまさに私が欲しいものです。ただし、言語をヘブライ語に設定して同じことを行うと、結果は次のようになります。

日付 • 2014 年 10 月

[ • 午前 12:00 UTC-04:00]</p>

日付 • 2014 年 10 月 10 日 [ • 午前 12:00 UTC-04:00]</p>

RTL ヘブライ語の月と年の間のタイムストリングの奇妙なインターカレーションに注意してください。

両方の文字列の一部を方向コード (U+202A、U+202C など) でラップしようとしましたが、成功しませんでした。日付文字列は既に RTL と LTR が混在しているように見えますが、検索しても方向文字が見つかりません。

これを修正する方法について何か考えはありますか?良くも悪くも、技術的には正しくないかもしれませんが、時間文字列が奇妙な区切りなしで日付文字列に「続く」ことを望みます。Javascript の toLocaleString() 機能は認識していますが、まだ十分にサポートされていないため、少なくともフォールバックとして上記のアプローチを使用したいと考えています。

4

1 に答える 1

2

私はこれを解決しました。ヘブライ語は厳密には RTL ではないことがわかりました。単語や文は RTL にレンダリングされますが、文字列の数値部分は LTR にレンダリングされます。したがって、上記の結果は、2014 年の最後の数字のすぐ右側にある日付文字列の「末尾」に時間文字列を追加したという意味で「正しい」ものです。

JQ カレンダーを使用して書式設定の一部としてスペースと黒丸文字を含む日付文字列を生成すると、書式設定が「リセット」され、文字列の末尾が年の左側に続きます。'U+202A' が先行する時間文字列の明示的な埋め込みを行うと、結果をインターカレートすることなく、日付文字列に続いて時間文字列全体が plunk されます。最後に、私は

日時 • 2014 年 10 月 10 日 • 午前 12:00 UTC-04:00

厳密には RTL ではありませんが、私の目的には十分に役立ちます。

于 2014-09-27T13:15:05.090 に答える