3
2
1

ChromeでJIRAを使っています。

課題作成時に、日付ピッカー(期限など)でカレンダーが表示されますが、初期表示が逆転します。

(情報) 例えば、9/3 だと、3/9 に表示されます。

(ティック) IEやFirefoxだと問題ありません。Chromeでも、JIRAの言語設定が英語だと問題ありません。

 

Atlassianサポートに確認したところ、以下不具合だと伝えられました。

JRA-38643 Date picker chooses incorrect default date in Chrome browser when user profile language is Japanese - Atlassian JIRA

 

カレンダーウィンドウを開き、「今日」ボタンを押下すれば、当日にはなりますが...イケテマセン。

何か回避策はないものでしょうか....

    Commentコメントを追加...

    3 回答

    1.  
      2
      1
      0

      (警告) この内容は非サポートですが、回避することは可能です。

      問題点は、各ブラウザのJavaScript(Dateオブジェクト)の挙動が異なる点にあります...

      JIRAが使っているJavaScriptライブラリは以下に配置されています。

      (JIRAインストールディレクトリ)/atlassian-jira/includes/lib/calendar

      • Calendar.js
      • Calendar-min.js (圧縮済み)
       733     // try to parse the current date/time in ISO8601 format
       734     if (this.dateStr) {
       735         this.date = new Date(this.dateStr);
       736     }
       737
       738     // fall back to date/time in browser time zone if necessary
       739     if (!this.date || isNaN(this.date)) {
       740         this.date = new Date();
       741     }

      735行目付近が問題です。

      this.dateStr の文字列は、JIRAのJava側で生成しているのですが...細かいことは

      jira-project/jira-components/jira-core/src/main/resources/templates/plugins/jira/macros.vm

      あたりのソースコードを見てください。

      言語設定が日本語の場合、以下日時のフォーマットで返却されます。

      木, 3 9 2015 14:46:47

       

      このフォーマットをJavaScript側で操作しています。

      ですが、各ブラウザのConsoleで以下を実行していただければわかりますが...

      new Date('木, 3 9 2015 14:46:47');

      IE、Firefox は Invalid Date が返却されるのですが

      Chromeだけ Mon Mar 09 2015 14:46:47 GMT+0900 (東京 (標準時)) で返却されます。

      これが問題を引き起こしています..

      回避策

      Calendar.js の 733行目~736行目付近のif文をコメントアウトしてください。

      738行目以降の処理で、現在時刻(但しJavaScriptのためクライアントのPC時刻になります)が問題なく設定されます。

      # cd (インストールディレクトリ)/atlassian-jira/includes/lib/calendar
      # vim Calendar.js ← 修正
       
      if(this.dateStr){this.date=new Date(this.dateStr)} をコメントアウト
       
      # vim Calendar-min.js ← 修正 
       
      if(this.dateStr){this.date=new Date(this.dateStr)} を削除
       
       
      # /sbin/service jira stop
      # /sbin/service jira start

      (警告) JIRAの再起動が必要です。

      ご参考になりましたら幸いです。

        Commentコメントを追加...
      1.  
        1
        0
        -1

        こちらの課題で修正されたようです。JIRA 7.x 以上であればなおっているはず。

        JRASERVER-40246 Date Picker inverts date and month when using Japanese with Chrome

          Commentコメントを追加...
        1.  
          1
          0
          -1

          助かる~!

            Commentコメントを追加...