/** * 将 Date 转化为指定格式的String * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * @param Date date * @param string fmt * @returns string */ function formatDate(date, fmt) { //author: meizz var o = { "M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "h+": date.getHours() % 12 == 0 ? 12 : date.getHours() % 12, //小时 "H+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "q+": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 }; var week = ["天", "一", "二", "三", "四", "五", "六"]; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[date.getDay() + ""]); } 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; } // 示例 console.log(formatDate(new Date(), "yyyy-MM-dd hh:mm:ss.S")); // 2017-07-11 13:07:12 console.log(formatDate(new Date(), "yyyy-MM-dd HH:mm:ss")); // 2017-07-11 13:07:12 console.log(formatDate(new Date(), "yyyy-M-d h:m:s.S")); // 17-7-11 13:7:12 console.log(formatDate(new Date(), "yy-M-d H:m:s")); // 17-7-11 13:7:12 console.log(formatDate(new Date(), "yyyy-MM-dd E")); // 2017-07-11 13:07:12 console.log(formatDate(new Date(), "yyyy-MM-dd EE")); // 2017-07-11 13:07:12 console.log(formatDate(new Date(), "yyyy-MM-dd EEE")); // 2017-07-11 13:07:12 /** * 判断指定日期是一年中的第几周 * @param Date date * @return integer */ function getWeekNumber(date) { var totalDays = 0; var years = date.getYear() if (years < 1000) { years += 1900; } var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //判断是否为闰年,针对2月的天数进行计算 if (Math.round(date.getYear() / 4) == date.getYear() / 4) { days[1] = 29 } var curMonth = date.getMonth(); totalDays = date.getDate(); for (var i = 0; i < curMonth; i++) { totalDays += +days[i]; } //那一年第一天是星期几 var yearFirstDay = new Date(years, 0, 1).getDay() || 7; var week = null; if (yearFirstDay == 1) { week = Math.ceil(totalDays / yearFirstDay); } else { totalDays -= (7 - yearFirstDay + 1); week = Math.ceil(totalDays / 7) + 1; } return week; } // 示例 console.log(getWeekNumber(new Date())); //29 console.log(getWeekNumber(new Date(‘2017-01-01‘))); // 1 console.log(getWeekNumber(new Date(‘2017-12-31‘))); // 53 console.log(getWeekNumber(new Date(‘2000-05-08‘))); // 20
下载:[js_date_function_demo.zip]
版权声明:本文采用署名-非商业性使用-相同方式共享(CC BY-NC-SA 3.0 CN)国际许可协议进行许可,转载请注明作者及出处。 本文标题:代码收藏系列--javascript--日期函数 本文链接:http://www.cnblogs.com/sochishun/p/7150428.html 本文作者:SoChishun (邮箱:14507247#qq.com | 博客:http://www.cnblogs.com/sochishun/) 发表日期:2017年7月11日 |
时间: 2024-10-28 19:38:54