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;
    }
}
时间: 2024-10-16 08:25:28

js,将日期时分秒等格式化和转化的相关文章

jquery.datepair日期时分秒选择器

jquery.datepair是一个轻量级的jQuery插件,智能选择日期和时间范围,灵感来自于谷歌日历.Datepair将保持开始和结束日期/时间同步,并可以根据用户的操作设置默认值.该插件不提供任何UI小部件; 它预先配置工作的jquery-timepicker和引导DatePicker的,但你可以使用它与任何日期选择器或timepicker. 实例代码 <p id="basicExample"> <input type="text" clas

js动态实现时分秒

<div id="time" style="color: #96C2DD;</div>      <script type="text/javascript">        setInterval(function(){            var time=new Date();            var year=time.getFullYear();  //获取年份            var month=ti

js 倒计时 (时分秒版本)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <meta charset="UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml"> <head

js获取年月日时分秒星期

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

日期选择器datetimepicker--选择时分秒

作为一名java后台开发,在做后台管理系统时候,经常会遇到日期选择器的问题,项目中一直采用的都是bootstrap-datepicker,这个插件的确美观好用,但是最近最近开发一个竞拍模块,需要设置时分秒,那该该插件就无能为力了,因此,加强版datetimepicker,文档链接http://www.bootcss.com/p/bootstrap-datetimepicker/,按照文档重新引入新的日期插件. 首先,下载依赖的jar包 引入依赖 不要忘了css样式 至此,时分秒选择完成! boo

[笔记]格式化jqGrid中的日期与时间,解决时分秒都显示为0

项目中的一个jqGrid列表页面的一列需要显示日期和时间,如:2011-08-10 10:20:30,查阅官方wiki文档的说明和例子,然后在colModel的需要格式化时间的列的formatter:'date'的后面加了一些 formatoptions配置,但IE和FF浏览器中都没有效果,也没提示什么错误~ 无奈官方wiki文档的日期时间格式化部分的说明和例子对我来说不够细,只好查看jquery.fmatter.js中的源代码的DateFormat部 分,还好查出来了,原来srcformat和

JS日历控件 灵活设置: 精确的时分秒.

在今年7月份时候 写了一篇关于 "JS日历控件" 的文章 , 当时只支持 年月日 的日历控件,现在优化如下: 1. 在原基础上 支持 yyyy-mm-dd 的年月日的控件. 2. 在原基础上增加支持 yyyy-mm-dd HH:MM 年月日时分的控件. 3. 在原基础上增加支持 yyyy-mm-dd HH:MM:SS 年月日时分秒的控件. 4. 增加确定按钮 及 今天 和关闭按钮.当我切换到其他年份的时候,我点击 "今天"按钮 就可以返回当前的年月份. 配置项如下:

在jqueryEasyUI界面将时间以日期加时分秒的格式显示

问题描述: oracle 10G中用户表有一个字段是日期型,数据格式为yyyy-MM-dd HH:mm:ss,前端显示时只能显示成yyyy-MM-dd 后面的 HH:mm:ss不显示. 经过一番痛苦的原因分析,发现应该将用户实体的日期类型由java.sql.Date修改成java.util.Date型,并且对 jackson进行如下处理: private void Test(MyUser user) { ObjectMapper mapper = new ObjectMapper(); Writ

JavaScript基础 Date(日期字符串 不包括时分秒) 不指定时分秒的时候 系统默认是0:0:0

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut