/**
* 获取当前时间的简短函数
* @returns {String}
* @@example getTimeStamp() 结果是:2017-07-12 09:21:30
*/
function getTimeStamp() {
var date = new Date();
var o = {y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds()};
var sout = o.y + "-" + (o.m < 10 ? '0' : '') + o.m + '-' + (o.d < 10 ? '0' : '') + o.d + ' ' + (o.h < 10 ? '0' : '') + o.h + ':' + (o.i < 10 ? '0' : '') + o.i + ':' + (o.s < 10 ? '0' : '') + o.s;
return sout;
}
console.log(getTimeStamp());
/**
* 将 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())); //
console.log(getWeekNumber(new Date('2017-01-01'))); //
console.log(getWeekNumber(new Date('2017-12-31'))); //
console.log(getWeekNumber(new Date('2000-05-08'))); //

下载:[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日

最新文章

  1. java.util.concurrent包详细分析--转
  2. bug_ _
  3. [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySQL+PHP) Part IV
  4. python 中 input 和 raw_input 的区别
  5. Check Big/Little Endian
  6. poj 2515 Birthday Cake
  7. Hibernate介绍和入门案例
  8. 基于android的语音质量评估
  9. HTML5 full-screen全屏API
  10. /etc/profile 路径出错后相关的命令失效解决方式
  11. 020 $.each的使用
  12. C++的虚函数
  13. poj 2488 A Knight's Journey
  14. selenium webdriver——JS滚动到指定位置
  15. 编码学习---代码OJ网站
  16. PHP中使用CURL模拟文件上传实例
  17. aop编程术语
  18. Tomcat服务器配置和使用(三)
  19. GYM - 100814 C.Connecting Graph
  20. POJ 开关问题 解题报告

热门文章

  1. Python和Pycharm的安装
  2. 如何运用 Powershell 修改Office365和AD账户
  3. php缩放处理png和jpg图片
  4. 智慧树mooc自动刷课代码
  5. 从武侠中的兵器看待数据访问工具——Hibernate Spring.Data Mybatis
  6. selenium 标签页切换
  7. Amazon Headlines Update on Activity in US West Coast Ports
  8. wireshark解析https协议方法
  9. php序列化问题
  10. sprint3最终演示及团队贡献分