资讯专栏INFORMATION COLUMN

Javascript Date常用示例

Thanatos / 1063人阅读

摘要:一比较时间的大小由页面插件选择的日期时间结束时间必须大于开始时间日期时间日期二将后台取出的时间戳转化成指定格式的日期三求时间差天时分秒假定获取的中时间值相差秒数等价于相差天数相差小时相差分钟相差秒天小时分钟

一.比较时间的大小(由页面插件选择的日期时间)

    var startDateStr = "2017-03-11 10:00:00";
    var endDateStr = "2017-03-11 9:59:59";
    var startDate = dateFormat(startDateStr);
    var endDate = dateFormat(endDateStr);
    if ((startDate-endDate) >= 0) {
        alert("结束时间必须大于开始时间");
    }
    function dateFormat(dateStr) {
        if (dateStr.indexOf(":") > -1){     //日期+时间
            var tempArr = dateStr.split(" ");
            var dArr =  tempArr[0].replace(/[-/]/g, ",").split(",");
            var tArr =  tempArr[1].replace(/(:)/g, ",").split(",");
            return new Date(parseInt(dArr[0]), parseInt(dArr[1]), parseInt(dArr[2]), parseInt(tArr[0]), parseInt(tArr[1]), parseInt(tArr[2]));
        } else {                          //日期
            var dArr =  dateStr.replace(/[-/]/g, ",").split(",");
            return new Date(parseInt(dArr[0]), parseInt(dArr[1]), parseInt(dArr[2]));
        }
    }
二.将后台取出的时间戳转化成指定格式的日期
function getDate(date, format) {
    // format: yyyy-MM-dd hh:mm:ss
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (date.getFullYear() + "").substring(4 - RegExp.$1.length));
    }
    var o = {
        "(M+)": date.getMonth(),
        "(d+)": date.getDate(),
        "(h+)": date.getHours(),
        "(m+)": date.getMinutes(),
        "(s+)": date.getSeconds()
    };
    for (var key in o) {
        var reg = new RegExp(key);
        if (reg.test(format)) {
            format = format.replace(RegExp.$1, addLeftZero(o[key] + ""));
        }
    }
    return format;
};

function addLeftZero(str) {
    return str.length > 1 ? str : "0" + str;
}
三.求时间差(天、时、分、秒)
var startDateStr = "2017-03-11 10:00:00";       //假定获取的input中时间值
var endDateStr = "2017-03-12 10:59:59";
remainTime(startDateStr,endDateStr);
function remainTime(startDateStr, endDateStr) {
    var startDate = dateFormat(startDateStr);
    var endDate = dateFormat(endDateStr);
    var t = (endDate - startDate)/1000;      //相差秒数   等价于=>(endDate.getTime() - startDate.getTime())/1000
    var days = Math.floor(t/86400);            //相差天数
    var hours = Math.floor(t%86400/3600);      //相差小时
    var minutes = Math.floor(t%86400%3600/60); //相差分钟
    var seconds = Math.floor(t%60);            //相差秒
    console.log(days+"天"+hours+"小时"+minutes+"分钟"+seconds+"秒");  //1天0小时59分钟59秒
}
//转化为时间对象Object
function dateFormat(dateStr) {
    if (dateStr.indexOf(":") > -1){     //日期+时间
        var tempArr = dateStr.split(" ");
        var dArr =  tempArr[0].replace(/[-/]/g, ",").split(",");
        var tArr =  tempArr[1].replace(/(:)/g, ",").split(",");
        return new Date(parseInt(dArr[0]), parseInt(dArr[1]), parseInt(dArr[2]), parseInt(tArr[0]), parseInt(tArr[1]), parseInt(tArr[2]));
    } else {                          //日期
        var dArr =  dateStr.replace(/[-/]/g, ",").split(",");
        return new Date(parseInt(dArr[0]), parseInt(dArr[1]), parseInt(dArr[2]));
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81952.html

相关文章

  • JavaScript Date对象用法及示例

    摘要:对象用于处理日期和时间一创建对象得到一个时间对象,会自动把本地当前日期和时间保存为其初始值中国标准时间二对象参数数字的形式年,月,日,时,分,秒中国标准时间中国标准时间中国标准时间注意月份接收的参数是月月,所以传入,得到月份年份应该传入位数 Date对象用于处理日期和时间 一. 创建Date对象 myDate得到一个时间对象Object,会自动把本地当前日期和时间保存为其初始值 var...

    jollywing 评论0 收藏0
  • JavaScript 基础知识 - 入门篇(二)

    摘要:函数可以没有返回值,会在最后面返回一个。事物的行为在对象中用方法来表示。 11. 函数 11.1 函数的基础知识 为什么会有函数? 在写代码的时候,有一些常用的代码需要书写很多次,如果直接复制粘贴的话,会造成大量的代码冗余;函数可以封装一段重复的javascript代码,它只需要声明一次,就可以多次调用; 冗余代码: 冗余:多余的重复或啰嗦内容 缺点: 代码重复,可阅读性差 ...

    niuxiaowei111 评论0 收藏0
  • JavaScript常用工具函数

    摘要:深拷贝函数判断子元素是否为对象,如果是,递归复制如果不是,简单复制时间戳转为格式化时间时间戳转为格式化时间时间戳时间格式格式包括年月日年月日时分年月日时分秒示例年月日年月日小于补 1.深拷贝函数 function deepClone(obj) { let objClone = Array.isArray(obj) ? [] : {}; if (obj && typeof obj...

    Chiclaim 评论0 收藏0
  • DataTables表格插件使用说明

    摘要:简介与的作用一样,比更漂亮是一款表格插件。它是一个高度灵活的工具,可以将任何表格添加高级的交互功能。 DataTables简介 与EasyUI的Datagrid作用一样,比easyui更漂亮 Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。 支持分页、排序、搜索 支持4种数据源 支持多种主题 拥有多种扩展 文件引入 ...

    weij 评论0 收藏0
  • DataTables表格插件使用说明

    摘要:简介与的作用一样,比更漂亮是一款表格插件。它是一个高度灵活的工具,可以将任何表格添加高级的交互功能。 DataTables简介 与EasyUI的Datagrid作用一样,比easyui更漂亮 Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。 支持分页、排序、搜索 支持4种数据源 支持多种主题 拥有多种扩展 文件引入 ...

    bovenson 评论0 收藏0

发表评论

0条评论

Thanatos

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<