人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【JavaScript】【作成依頼】
自作するのがしんどいので質問です。
IE,firefox,Opera にて稼動するジャストなご回答をいただいた場合、500point+いるかにて御礼させていただきます。よろしくお願いいたします。
----
【お願いしたいこと】
・<script type="text/javascript" src="hogejs.js"></script>←のような感じでHTMLファイルから呼び出したいです。
・設置&チェック時の注意点などがあればお知らせ下さい
・現在の年月日と別ファイルに用意したデータを参照し、下記の文章をwrite(★?★は変数)(☆曜日は月日から算出)

★月1★/★日1★(☆曜日)★txt1★(任意文字列)★月2★/★日2★(☆曜日:★月1★=12月かつ★月2★=1月の場合、年越しさせてください)

実際の出力例)
04/24(金) AM9:00(任意文字列)04/28(火)
※1?9月・1?9日の頭の0は必要

----
残りはコメントに記述します。。。。

●質問者: naleringar
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:00 12月 1月 24 28
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mars
●500ポイント ベストアンサー

・jQueryを使っています。(入手先 http://jquery.com/)

・このスクリプトはid="result"のリストに <li>結果</li> を書き足します。

(スクリプト後半の'<li>'や'</li>'の部分を変えればリスト以外の場所に書き出す事もできます)

・データの最初の二つ、現在の月,現在の日 は何かわからなかったので使っていません。

(データファイル上はあるものとして処理してます。参照してないだけ。)

・データに「年」の必要性を感じたので、現在の日と月1の間に年を書く事にしています。

・時刻は24h制のようでしたので、AM/PMは都合もあってスクリプト内で自動で付けることにしました。


--- HTML(head内) ---
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="example.js"></script>

--- HTML(body内) ---
<ul id="result"></ul>

--- examle.js ---
$(function(){
var J = {
filename : 'example.txt',
text : '任意文字列',
resultElement:'#result',
data : new Array()
};

jQuery.get( J.filename ,{},
function(textdata){
jQuery.each(textdata.split('\n'),
function(i,val){
val=val.replace(/\s+/,'');
var getYobi = function(w){return(['日','月','火','水','木','金','土'][w])};
J.data[i] = val.split(',');
if(J.data[i].length < 2)return;
var tD = new Date(J.data[i][2]+'/'+J.data[i][3]+'/'+J.data[i][4]);
J.data[i].push(getYobi(tD.getDay()));
tD = new Date(((J.data[i][3]==12 &&J.data[i][6]==1)?parseInt(J.data[i][2])+1:J.data[i][2]) +
'/'+J.data[i][6]+'/'+J.data[i][7]);
J.data[i].push(getYobi(tD.getDay()));
jQuery.each(['3','4','6','7'],
function(x,val){
if(J.data[i][val] < 10) J.data[i][val] = '0'+J.data[i][val];
}
);
var tT = J.data[i][5].split(':')[0];
J.data[i][5] = ((tT < 12)?'AM':'PM') + ((tT<10)?'0':'') + J.data[i][5];

$(J.resultElement).append(
'<li>'+
J.data[i][3]+'/'+
J.data[i][4]+'('+J.data[i][8]+') '+
J.data[i][5]+'('+J.text+')'+
J.data[i][6]+'/'+
J.data[i][7]+'('+J.data[i][9]+')'+
'</li>'
);
}

);
}
);
});

--- examle.txt(テストしたデータ) ---
4,20,2009,4,24,9:00,4,28
4,22,2009,4,29,9:00,4,30
4,24,2009,4,29,9:00,5,1
4,25,2009,4,29,18:00,5,1
4,27,2009,5,6,9:00,5,8
4,26,2009,12,6,9:00,1,8

--- 結果(実行後のHTML) ---
<ul id="result">
<li>04/24(金) AM09:00(任意文字列)04/28(火)</li>
<li>04/29(水) AM09:00(任意文字列)04/30(木)</li>
<li>04/29(水) AM09:00(任意文字列)05/01(金)</li>
<li>04/29(水) PM18:00(任意文字列)05/01(金)</li>
<li>05/06(水) AM09:00(任意文字列)05/08(金)</li>
<li>12/06(日) AM09:00(任意文字列)01/08(金)</li>
</ul>

何か不都合とかあれば後はコメントの方で。

◎質問者からの返答

調整いただきありがとうございます。

PC時計を色々ずらしたり、サーバー上に置いて閲覧してみたりして、動作をおおむね確認し、だいたい大丈夫そうです(タブでインデントしようとして、どことどこのカッコがくっついてるのか真剣に悩むレベルなので本当に助かります)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ