JS日期的获取与加减

时间:2023-03-08 21:30:38
JS日期的获取与加减

1)获取当前日期:

var today = new Date();

2)设定某个日期:

var d = new Date("2015-1-08".replace(/-/g,"/").replace(/T/g, " "));

【重要提示】

  非IOS):格式必须是yyyy/MM/dd HH:mm:ss,1月可以是1,也可以是01。例: new Date("2018/1/08")

  IOS):格式必须是yyyy,MM,dd,HH,mm,ss,月从0开始到11,如1月可以是0,也可以是00;2月可以是1,也可以是01。例: new Date("2018","00","08")

3)获取当前时间戳:

var todayVal = new Date().valueOf();

4)获取年月日时分秒:

var today = new Date();

var year = today .getFullYear();
var month = today .getMonth()+1;
var day = today .getDate();
var hour = today .getHours();
var minute = today .getMinutes();
var second = today .getSeconds();
var millisecond = today.getMilliseconds();

5)日期加减:

function innerDate(d)
{
var today = new Date().valueOf();
var myday = today + d * 24 * 60 * 60 * 1000;//加减天
  //var myday = today + d * 60 * 60 * 1000;//加减时
  //var myday = today + d * 60 * 1000;//加减分
  //var myday = today + d * 1000;//加减秒 myday = new Date(myday);
var yyyy = myday.getFullYear();
var MM = myday.getMonth() + 1;
var dd = myday.getDate();
return yyyy+"-"+(MM<10?"0"+MM:MM)+"-"+(dd<10?"0"+dd:dd);
}

6)将UTC时间/Date(1351570839583+0800)/转化为日期格式

function loadDate(v) {
  var t = v.substring(v.indexOf("(") + 1, v.indexOf("+"));
  var myday = new Date(parseInt(t));
  var yyyy = myday.getFullYear();
  var MM = myday.getMonth() + 1;
  var dd = myday.getDate();
  return yyyy + "-" + (MM < 10 ? "0" + MM : MM) + "-" + (dd < 10 ? "0" + dd : dd);
}

7)date2 - date1,换算为时分秒

//_date2格式必须为yyyy/MM/dd,不允许为yyyy-MM-dd
function reloadTime(_date2) {
  var date1 = new Date().valueOf();
  var date2 = new Date(_date2).valueOf();
  var less = date2 - date1;
  if (less <= 0) {
    less = 0;
    $("#endTime").text("00:00:00");
  }
  else {
    var interval = new Date(less);
    var hh = parseInt(less / 1000 / 60 / 60); hh = hh > 9 ? hh : "0" + hh;
    var mm = parseInt(less / 1000 / 60) - hh * 60; mm = mm > 9 ? mm : "0" + mm;
    var ss = parseInt(less / 1000) - hh * 60 * 60 - mm * 60; ss = ss > 9 ? ss : "0" + ss;
    $("#endTime").text(hh + ":" + mm + ":" + ss);
  }   if (less == 0) {
    alert("时间到!");
  }
}

8)日期字符格式化

//由于IOS不支持微秒,故请转换前substr(0, 19)
String.prototype.formatDate = function (formatStr) {
var d = new Date(this.substr(0, 19).replace(/-/g, "/").replace(/T/g, " "));
if (d == "Invalid Date") {
d = new Date(Date.parse(this));//第二次尝试转换
if (d == "Invalid Date")
return this;
} var year = d.getFullYear();
var year2 = year.toString().substr(2, 2);
var month = d.getMonth() + 1;
month = month < 10 ? "0" + month : month;
var day = d.getDate();
day = day < 10 ? "0" + day : day;
var hour = d.getHours();
hour = hour < 10 ? "0" + hour : hour;
var minute = d.getMinutes();
minute = minute < 10 ? "0" + minute : minute;
var second = d.getSeconds();
second = second < 10 ? "0" + second : second; return formatStr.replace(/yyyy|YYYY/g, year).replace(/yy|YY/g, year2).replace(/MM/g, month).replace(/dd|DD/g, day).replace(/hh|HH/g, hour).replace(/mm/g, minute).replace(/ss|SS/g, second);
}