• ベストアンサー

秒後を日付時刻へ変換

JavaScriptで 秒後の日付時刻へ変換するプログラムを教えてください。 例えば 15247秒後(04時間14分07秒) ↓ 2012/12/29 08:47:07 2357秒後(0時間39分17秒) ↓ 2012/12/29 05:47:07 のようになる感じにしたいのです。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

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)

synchro-night
質問者

お礼

解答ありがとうございます。 うまくいきました。 時差が出たので下記のように修正しました。 大変助かりました。 d.setSeconds(d.getSeconds()+t+3600*9);

その他の回答 (2)

回答No.3

かんたんなことを めんどうくさく かく。 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));

synchro-night
質問者

お礼

ご丁寧な解答ありがとうございます。 いろいろな方法で試してみます。

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

すみません 2番の方法では+3600*9してください

関連するQ&A