你的位置:首页 > Java教程

[Java教程]js,将日期时分秒等格式化和转化


 

1.将js Date对象格式化为指定格式,添加一个原型方法

/** * 返回指定format的string * format eg:'yyyy-MM-dd hh:mm:ss' **/Date.prototype.format = function(format) {  var o = {    "M+": this.getMonth() + 1,    "d+": this.getDate(),    "h+": this.getHours(),    "m+": this.getMinutes(),    "s+": this.getSeconds(),    "q+": Math.floor((this.getMonth() + 3) / 3),    "S": this.getMilliseconds()  }  if (/(y+)/.test(format)) {    format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));  }  for (var k in o) {    if (new RegExp("(" + k + ")").test(format)) {      format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));    }  }  return format;}使用如:new Date().format('yyyy-MM-dd');  // echo: '2015-12-01'

 

2.得到昨天 (永远相对于今天的前一天)

// 得到昨天的日期 返回昨天function yesterday() {  var today = new Date();  var the_yesterday = today.setDate(today.getDate() - 1);  return the_yesterday;}

 

3. 得到上一个月的今天

// 得到近一个月 返回上一个月的今天function lastMonth() {  var today = new Date();  var month = today.getMonth();  var the_last_month;  if (month == 0) {    the_last_month = today.setMonth(11);  } else {    var the_last_month = today.setMonth(month - 1);  }  the_last_month = new Date(the_last_month).format('yyyy-MM-dd');  return the_last_month;}

 

4.得到指定格式的最近一周 返回一个数组

// 得到近一周 返回数组  (note: 这里的format使用了上面的用来format原型方法)function lastWeek(format) {  var today = new Date();  var the_week = [];  var format = format || 'yyyy-MM-dd';  for (var i = 1; i < 8; i++) {    var temp = today.setDate(today.getDate()-1);    temp = new Date(temp).format(format);    the_week.unshift( temp );  };  return the_week;}

 

5.得到近n天 返回一个数组

// 得到近n天 返回数组function lastNDay(days,format) {  var today = new Date();  var the_days = [];  var format = format || 'yyyy-MM-dd';  for (var i = 1; i < days+1; i++) {    var temp = today.setDate(today.getDate()-1);    temp = new Date(temp).format(format);    the_days.unshift( temp );  };  return the_days;}//使用如lastNDay(7); // 返回最近一周的日期数组 format参数可选// [ '2011-11-01', '2011-11-02','2011-11-03','2011-11-04','2011-11-05','2011-11-06','2011-11-07' ]

 

6.把毫秒转换成时长

// 把毫秒转换成时长// 返回 1.若小于等于60秒,显示秒数//   2.若大于1分钟小于1小时,显示分钟//   3.若大于1小时,显示x小时x分钟function MillisecondToTime(msd) {  var time = parseInt(msd) / 1000;  if (time <= 60) {    time = time + '秒';    return time;  } else if (time > 60 && time < 60 * 60) {    time = parseInt(time / 60) + "分钟";    return time;  } else {    var hour = parseInt(time / 3600) + "小时";    var minute = parseInt(parseInt(time % 3600) / 60) + "分钟";    time = hour + minute;    return time;  }}