javascript 封装Date日期类实例详解

发布时间 - 2026-01-11 01:27:58    点击率:

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-封装Date日期类  # JS中Date日期函数中的参数使用介绍  # 浅谈JS日期(Date)处理函数  # js Date()日期函数浏览器兼容问题解决方法  # JavaScript Date对象 日期获取函数  # javascript学习笔记(六) Date 日期类型  # 浅谈JavaScript Date日期和时间对象  # JS中Date的一些常用方法小结  # 周日  # 自定义  # 转换成  # 可以用  # 本周  # 下午  # 希望能  # 不支持  # 谢谢大家  # 转化为  # 只能用  # 中国  # 格式为  # 几周  # 返回值  # window  # getDate  # getHours  # getSeconds  # getMinutes 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  独立制作一个网站多少钱,建立网站需要花多少钱?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  焦点电影公司作品,电影焦点结局是什么?  三星网站视频制作教程下载,三星w23网页如何全屏?  详解Huffman编码算法之Java实现  如何在宝塔面板创建新站点?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  javascript日期怎么处理_如何格式化输出  C语言设计一个闪闪的圣诞树  高防服务器如何保障网站安全无虞?  香港服务器WordPress建站指南:SEO优化与高效部署策略  微信小程序 input输入框控件详解及实例(多种示例)  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  佛山网站制作系统,佛山企业变更地址网上办理步骤?  微信小程序 wx.uploadFile无法上传解决办法  详解jQuery中的事件  Python制作简易注册登录系统  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何实现一对一模型关联?(Eloquent示例)  ,怎么在广州志愿者网站注册?  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何配置和使用缓存?(Redis代码示例)  详解Android图表 MPAndroidChart折线图  奇安信“盘古石”团队突破 iOS 26.1 提权  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何彻底删除建站之星生成的Banner?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Swift开发中switch语句值绑定模式  Python自动化办公教程_ExcelWordPDF批量处理案例  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  香港服务器租用每月最低只需15元?  jQuery validate插件功能与用法详解  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率