2014-09-27 55 views
2

我正在使用JQuery日曆爲應用程序生成日期字符串。如果我設置語言爲英語,我得到一個日期字符串是這樣的:在Javascript中連接雙向字符串

週五•2014年10月10日

JQ日曆不處理的時間,所以我格式化字符串的時間部分自己:

[•上午12:00 UTC-04:00]

(括號中包括了清晰;他們不會是最後海峽的一部分。ING)接下來,我只添加這兩個字符串連接在一起,並得到:

週五•2014年10月10•上午十二時00 UTC-04:00]

這正是我想要。然而,當我做同樣的事情用語言設置爲希伯來語,我的結果是:

שישי•10אוקטובר2014

[•上午12:00 UTC-04:00]

שישי•10אוקטובר教案彙編[•上午12:00 UTC-04:00]

注意RTL希伯來年份和月份之間的TIMESTRING的奇插。

我試過在方向代碼(U + 202A,U + 202C等)中包裝兩個字符串的一部分,但沒有成功。它看起來像日期字符串已經是RTL和LTR的混合,但我已經通過它搜索,並找不到任何方向字符,雖然我可能會躲過這個搜索。

就如何解決這一問題有什麼想法?無論好壞,我希望時間字符串「跟隨」日期字符串,而不會出現奇怪的中斷,即使這在技術上可能不正確。我知道Javascript的toLocaleString()函數,但它還沒有得到很好的支持,所以我想至少使用上面的方法作爲後備。

回答

2

我解決了這個問題。事實證明,希伯來語不是嚴格的RTL;字符串的數字部分呈現爲LTR,即使單詞和句子呈現爲RTL。所以上面顯示的結果是「正確的」,因爲我將時間字符串附加到日期字符串的「結尾」 - 這在2014年的最後一個數字的右側立即出現。

使用空格和項目符號字符作爲格式化的一部分生成日期字符串(通過JQ日曆),「重置」格式設置,以便字符串的末尾位於年份的左側。在'U + 202A'之前進行時間字符串的顯式嵌入,在日期字符串之後整體地插入時間字符串,而不插入結果。最後,我風與

الجمعة•10تشرينالأول2014•上午12:00 UTC-04:00

這雖然不是嚴格的RTL,提供我的目的只是罰款。