javascript 封装Date日期类实例详解


Posted in Javascript onMay 28, 2017

javascript-封装Date日期类

(一)对日期进行格式化

自定义Date日期类的format()格式化方法

方式一:(非原创)

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(H)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd HH:mm:ss.S") ==> 2016-09-19 16:32:53.731
// (new Date()).Format("yyyy-M-d H:m:s:S")   ==> 2016-9-19 16:40:9:955 
Date.prototype.Format = function (fmt) { //author: meizz 
  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(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  for (var k in o)
  if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  return fmt;
};

测试:

window.onload=function() {
  var date = new Date();
  var b = date.toLocaleDateString();//获取的格式为:2016年9月19日
  var d = date.toLocaleTimeString();//下午4:42:46
  var e = date.toLocaleString();//2016年9月19日 下午4:44:02
  var f = date.toDateString();//Mon Sep 19 2016
  var g = date.toUTCString();//Mon, 19 Sep 2016 08:45:42 GMT
  var h = date.toString();//Mon Sep 19 2016 16:46:23 GMT+0800 (中国标准时间)
  //自定义日期格式
  var c = date.Format("yyyy-MM-dd HH:mm:ss");//format()方法是自定义的
  document.getElementById("aa").value = c;
};

(二)根据日期返回本周周一和周日的日期

/**
 * 根据日期返回本周周一和周日的日期
 * @param day
 *   参数日期
 * @param num
 *   第几周
 * @return oneWeek
 *   周一,周日所在日期  
 */
function getWeekDate(day,num) {
  
  num = num || 0;
  // 返回值:周一和周日所在的日期
  var oneWeek = {};
  // 初始日期
  var initDate = "";
  // 截取年月日
  initDate = day.split(' ')[0];
  // ie兼容性问题,将yyyy-MM-dd转换成yyyy/MM/dd
  initDate = initDate.replace(/-/g,"/");
  // 将string转换成Date
  initDate = new Date(Date.parse(initDate));//格式只能是yyyy/MM/dd
  
  // 返回 day距离1970 年 1 月 1 日0时0分的毫秒数
  var nowTime = initDate.getTime(); 
  // 返回星期的某一天的数字: 0(周日) 到 6(周六)
  var weekNum = initDate.getDay();
  // 一天所代表的毫秒数
  var oneDayTime = 24 * 60 * 60 * 1000; 
  
  //显示周一
  var MondayTime = nowTime - (weekNum - 1) * oneDayTime ; 
  //显示周日
  var SundayTime = nowTime + (7 - weekNum) * oneDayTime ; 
  if (0 != num) {
    MondayTime += 7 * num * oneDayTime;
    SundayTime += 7 * num * oneDayTime;
  }
  
  //初始化日期时间
  var monday = new Date(MondayTime);
  var sunday = new Date(SundayTime);
  // formatDate是自定义的格式化方法
  monday = monday.formatDate('yyyy-MM-dd');
  sunday = sunday.formatDate('yyyy-MM-dd');
  
  oneWeek.Monday = monday;
  oneWeek.Sunday = sunday;
  
  return oneWeek;
}

 测试:

var week = getWeekDate('2017-05-27',0);    
console.log(week.Monday + "," + week.Sunday);

 注意:

 Date.parse()具有兼容性问题,低版本IE浏览器不支持"yyyy-MM-dd"转换成Date,只支持"yyyy/MM/dd"转换成日期。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JQUERY 对象与DOM对象之两者相互间的转换
Apr 27 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
javascript中的取反再取反~~没有意义
Apr 06 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
js实现动态创建的元素绑定事件
Jul 19 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
JavaScript中闭包的详解
Apr 01 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
vue组件传递对象中实现单向绑定的示例
Feb 28 Javascript
vue动态删除从数据库倒入列表的某一条方法
Sep 29 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
Vue实现选择城市功能
May 27 #Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 #Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 #Javascript
javascript回调函数的概念理解与用法分析
May 27 #Javascript
原生JavaScript实现的简单省市县三级联动功能示例
May 27 #Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 #Javascript
详细讲解vue2+vuex+axios
May 27 #Javascript
You might like
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
PHP实现数组array转换成xml的方法
2016/07/19 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
JavaScript的parseInt 取整使用
2011/05/09 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
vue页面离开后执行函数的实例
2018/03/13 Javascript
详解vue中点击空白处隐藏div的实现(用指令实现)
2018/04/19 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
Django与JS交互的示例代码
2017/08/23 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
Python计算指定日期是今年的第几天(三种方法)
2020/03/26 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
英文简历中的自我评价用语
2013/12/09 职场文书
护士实习鉴定范文
2013/12/22 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
大学生入党群众意见书
2015/06/02 职场文书
汽车销售合同文本
2019/08/08 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python