- ベストアンサー
秒後を日付時刻へ変換
JavaScriptで 秒後の日付時刻へ変換するプログラムを教えてください。 例えば 15247秒後(04時間14分07秒) ↓ 2012/12/29 08:47:07 2357秒後(0時間39分17秒) ↓ 2012/12/29 05:47:07 のようになる感じにしたいのです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
t=15247 d=new Date() d.setSeconds(d.getSeconds()+t) //まずここまで //(1)環境によって全然表示が違うけどとにかく時刻を簡単に表示させたいのなら date=d.toLocaleString() //(2)モダンブラウザ向け(古いIEを気にしない)でその表示方法を貫くのなら date=d.toISOString().slice(0,10).replace(/\-/g,"/")+" "+d.toISOString().slice(11,19) //(3)いろんな環境でその表示を貫くのなら date=d.getFullYear()+"/"+("0"+(d.getMonth()+1)).slice(-2)+"/"+("0"+d.getDate()).slice(-2)+" "+("0"+d.getHours()).slice(-2)+":"+("0"+d.getMinutes()).slice(-2)+":"+("0"+d.getSeconds()).slice(-2)
その他の回答 (2)
- babu_baboo
- ベストアンサー率51% (268/525)
かんたんなことを めんどうくさく かく。 var dateToStringJp = (function (map, zeroPadding) { var zp = [4,2,2, 2,2,2, 3]; if (! Array.prototype.map) Array.prototype.map = map; return function (dateObj, type) { var d = dateObj ? dateObj: new Date; var p = [ d.getFullYear (), d.getMonth () +1, d.getDate (), d.getHours (), d.getMinutes (), d.getSeconds (), d.getMilliseconds () ]; var rst = ''; var s = []; switch (type) { case 1 :// yyy/mm/dd hh:mn:sc.mscd s = p.map (zeroPadding, zp); rst = [ [s[0], s[1], s[2]].join ('/'), [s[3], s[4], s[5]].join (':'), ].join (' ') + '.' + s[6]; break; default : // ????年??月??日 s = p.map (zeroPadding, zp); rst = [s[0], '年', s[1], '月', s[2], '日'].join (''); } return rst; }; }) ( function (b, e) { var c = this.length; if (typeof b!= "function") throw new TypeError; for (var d = Array (c),a = 0; a<c; a++) a in this && (d[a] = b.call (e,this[a],a,this)); return d; }, function (num, i) { var zp = this[i]; return ((new Array (zp)).join ('0') + num).slice (-zp); } ); //_______________________ alert (dateToStringJp ()); alert (dateToStringJp (null, 1)); alert (dateToStringJp (new Date (15247 + (+new Date)) , 1));
お礼
ご丁寧な解答ありがとうございます。 いろいろな方法で試してみます。
- b0a0a
- ベストアンサー率49% (156/313)
すみません 2番の方法では+3600*9してください
お礼
解答ありがとうございます。 うまくいきました。 時差が出たので下記のように修正しました。 大変助かりました。 d.setSeconds(d.getSeconds()+t+3600*9);