JSタイムスタンプとフォーマット時間が入れ替わります.

4448 ワード

JSタイムスタンプとフォーマット時間が入れ替わります.
Javascriptは現在のタイムスタンプ(ミリ秒レベル)を取得します.
//    (    )
var timestamp1 = Date.parse( new Date());

//    (     )
var timestamp2 = ( new Date()).valueOf();

//    (     )
var timestamp3 = new Date().getTime();
タイムスタンプをフォーマット時間に変更します.
const dateFormat = function(dateStr, fmt) {
  let date = new Date(dateStr)
  var o = {
    "Y+": date.getFullYear(),
    "M+": date.getMonth() + 1,                 //  
    "D+": date.getDate(),                    // 
    "h+": date.getHours(),                   //  
    "m+": date.getMinutes(),                 // 
    "s+": date.getSeconds(),                 // 
    "q+": Math.floor((date.getMonth() + 3) / 3), //  
    "S+": date.getMilliseconds()             //  
  };
  for (var k in o) {
    if (new RegExp("(" + k + ")").test(fmt)) {
      if (k == "Y+") {
        fmt = fmt.replace(RegExp.$1, ("" + o[k]).substr(4 - RegExp.$1.length));
      }
      else if (k == "S+") {
        var lens = RegExp.$1.length;
        lens = lens == 1 ? 3 : lens;
        fmt = fmt.replace(RegExp.$1, ("00" + o[k]).substr(("" + o[k]).length - 1, lens));
      }
      else {
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
      }
    }
  }
  return fmt;
}
タイムスタンプは固定フォーマットYYY-M-DD hh:mm:ssにフォーマットされています.
formatTimestamp(timestamp) {
        let date = new Date(timestamp * 1000);//    10  *1000,    13      1000
        let Y = date.getFullYear() + '-';
        let M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
        let D = date.getDate() + ' ';
        let h = date.getHours() + ':';
        let m = (date.getMinutes() < 10 ? '0'  + date.getMinutes() : date.getMinutes()) + ':';
        let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
        return Y+M+D+h+m+s;
    }
書式設定時間がタイムスタンプに変わります.
"2016-08-03 00:00:00" ——> 1470153600000
let dateF = "2016-08-03 00:00:00"
let date = new Date(dateStr)
let dateS = date.valueOf()
console.log(dateS)  // 1470153600000
JSはUTCタイムスタンプを取得します.
//     UTC  
const getUTCDate = ()=>{
  let date = new Date()
  let year = date.getUTCFullYear()
  let month = date.getUTCMonth()
  let day = date.getUTCDate()  //   the day of the month
  let hours = date.getUTCHours()
  let minutes = date.getUTCMinutes()
  let seconds = date.getUTCSeconds()
  let UTCDate = new Date(Date.UTC(year,month,day,hours,minutes,seconds))
  return Math.floor(UTCDate.getTime()/1000)
}

//        UTC  
const getZeroUTCDate = ()=>{
    let date = new Date()
    let year = date.getUTCFullYear()
    let month = date.getUTCMonth()
    let day = date.getUTCDate()  //   the day of the month
    let hours = date.getUTCHours()
    let minutes = date.getUTCMinutes()
    let seconds = date.getUTCSeconds()
    let UTCDate = new Date(Date.UTC(year,month,day,0,0,0))
    return Math.floor(UTCDate.getTime()/1000)
}
Unixタイムスタンプフォーマット
var a = FormatDateTime("/Date(1497232433000)/")
var b = FormatDateTime("1497232740000")
console.log(a); //2017-06-12 09:53:53
console.log(b); //2017-06-12 09:59:00
alert(a);
alert(b);
/*
* Unix            FormatDateTime("1497232433000")
* @param UnixTime Unix   
* @return yyyy-MM-dd HH:mm:ss
*/
function FormatDateTime(UnixTime) {
    var a = UnixTime.replace("/Date(", "").replace(")/", "");
    var date = new Date(parseInt(a));
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
};

参考文献
  • JavaScript取得タイムスタンプ変換
  • JSにおけるUnixタイムスタンプ変換日付フォーマット