6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サイボウズのカスタムアプリで、日付を和暦に変換する JavaScript

Last updated at Posted at 2015-01-05

 皆さん、あけましておめでとうございます。岩舘電気の中の人です。
 中の人にとって、昨年は大変に忙しい年でしたが、皆さんにとってはどんな年だったでしょうか。
われわれは今年も昨年以上に皆さんに「いわての光」を届けられるよう全力で邁進する所存です。
どうぞ今年も宜しくお願いいたします。

 さて、昨年末に、サイボウズのカスタムアプリの日付型から現在年齢を計算させるスクリプトを公開しました。
http://qiita.com/iwadatedenki/items/b3ce789868a1708d40af
この記事の文末で、西暦を和暦に変換するスクリプトも作りたいと書きましたが、作ってみたので早速公開します。
(2015/02/12追記:DBView のみならず、アップデートや新規追加画面でも書き換えをしてしまっていました。修正が必要ですので少々お待ちください。)

$(document).ready(function () {
	WesternJapaneseCalendarConverter("record-value-12",133);

	function WesternJapaneseCalendarConverter(tdclass, app_num){ //変換したい列, アプリID
		var did = $(':hidden[name="DID"]').val();

		if (did==app_num){
			var $tdobj=$("td").each(function(){
				if(typeof(this)!="number"){
					if(this.getAttribute("className")==tdclass||this.getAttribute("class")==tdclass){
						var b=new Date(this.innerHTML);
						if (b.getFullYear()<=1988){
							var prefix="S"+(b.getFullYear()-1925);
						} else if (b.getFullYear()>=1990) {
							var prefix="H"+(b.getFullYear()-1988);
						} else if (b.getMonth()==1||b.getDate()<=7) {
							var prefix="S64";
						} else {
							var prefix="H1";
						}
					var s=this.innerHTML;
					this.innerHTML=prefix+s.substring(4);
					}
				}
			});
		}	
	}
});

 実行した結果のサンプルはこちらです。なおこのサンプルでは、前回使った年齢計算スクリプトも動かしています。
左が変換前、右が返還後のサンプルです。
before.png ⇒ after.png

 こちらのスクリプトを前回作成した年齢計算スクリプトと共存させるには、先に年齢を計算させてから和暦変換する必要があります。(日付を取り出すパーサーが、後方の文字列を無視してくれるのでしょう。)あるいは、年齢を書きだす専用の列を作っておいてそちらに年齢を書きだし、オリジナルの日付の列は非破壊にしておくというのも良い方法かもしれません。
 次は西暦和暦を変換させるボタンを表示させて、相互変換できるようにしたいです。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?