js日期工具
/**
* 日期工具类
*/
define(function(require, exports, module) {
var constants = require("constants"); // 常量类 /**
* 描述: 把日期格式字符串转换成js Date类型
*
* @param dateStr: 日期字符串 格式必须为 yyyy-MM-dd hh:mm:ss 或 yyyy-MM-dd hh:mm:ss.S
* @returns 返回JS日期对象
*/
function getDateByStr(dateStr){
if (!dateStr) {
return;
}
//去掉后面毫秒数
if (dateStr.indexOf(".") != -1) {
dateStr = dateStr.substring(0, dateStr.indexOf("."));
} // 形如20160101120101转换成2016-01-01 12:01:01
if ($.trim(dateStr).length == 14 && dateStr.indexOf("-") == -1) {
dateStr = dateStr.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/, '$1-$2-$3 $4:$5:$6');
} // 形如20160101转换成2016-01-01
if ($.trim(dateStr).length == 8 && dateStr.indexOf("-") == -1) {
dateStr = dateStr.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3 00:00:00');
}
dateStr = dateStr.replace(new RegExp("-", "gm"), "/");
return new Date(dateStr);
} /**
* 描述:把yyyy-MM-dd hh:mm:ss (.S)日期字符串转化为指定格式的日期字符串
*
* @author
* @param srcDate: 1、源日期为日期格式的字符串 如:2015-11-12 11:34:45
* 2、源日期为Date类型 如:new Date();
* @param fmt: 格式,如:yyyy-MM-dd
*/
function dateFormat(srcDate, fmt){
if (!srcDate || !fmt) {
return srcDate;
} // 把字符串转换成日期对象
var date = (typeof(srcDate) == "object") ? srcDate : getDateByStr(srcDate); // 非date类型时返回原字符串
if (isNaN(date.getDay())) {
return srcDate;
} var o = {
"M+" : date.getMonth() + 1, // 月份
"d+" : date.getDate(), // 日
"h+" : date.getHours(), // 小时
"m+" : date.getMinutes(), // 分
"s+" : date.getSeconds(), // 秒
"q+" : Math.floor((date.getMonth() + 3) / 3), // 季度
"S" : date.getMilliseconds() // 毫秒
}; // 年份比较特殊,单独处理
if (/(y+)/.test(fmt)){
fmt = fmt.replace(RegExp.$1, (date.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;
} /**
* 描述: 获取时间毫秒数
*
* @author
* @param date: 格式为yyyy-MM-dd hh:mm:ss 或 yyyy-MM-dd hh:mm:ss.S的时间字符串
* @returns 返回时间毫秒数
*/
function getDateTime(date){
if (!date) {
return 0;
}
//去掉后面毫秒数
if (date.indexOf(".") != -1) {
date = date.substring(0, date.indexOf("."));
}
date = date.replace(new RegExp("-", "gm"), "/");
return (new Date(date)).getTime();
} /**
* 描述:根据年份和月份计算出有多少天
* @author
* @param year: 年份
* @param month: 月份
* @returns 天数
*/
function getMonthDays(year, month){
var monthStartDate = new Date(year, month - 1, 1);
var monthEndDate = new Date(year, month, 1);
return (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
} /**
* 计算某日期为一周中的哪天
*/
function cweekday(wday)
{
var hzWeek= new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日");
return hzWeek[wday];
} /**
* 获取当前时间前后N天日期的方法
* 可以得到昨天,今天,明天,一月前,三月前,半年前,一年前的日期,
* 只要修改参数就可以实现得到任何一个天数
* 昨天:getDateStr(-1)
* 今天:getDateStr(0)
* 明天:getDateStr(1)
*
* formate==> 1:yyyyMMdd
* 2:yyyy-MM-dd
*/
function getDateStr(addDayCount, formate){
var dd = new Date();
dd.setDate(dd.getDate() + addDayCount); //获取addDayCount天后的日期
var y = dd.getFullYear();
var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1);//获取当前月份的日期,不足10补0
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0
if(1 == formate){
return y + m + d; //格式:yyyyMMdd
}else if(2 == formate){
return y + "-" + m + "-" + d;
}
} function cala(date)
{
var y = date.substring(0,4);//年份
var m = date.substring(5,7);//月份
var d = date.substring(8,10);//日期
var next = 0;
var cash_time;
var ttt=new Date(y,m-1,d).getTime()+next * 24000 * 3600; var theday=new Date();
theday.setTime(ttt);
var weekday = cweekday(theday.getDay()); return weekday;
} /**
*获取当前时间和日期
*@param srcDate: 1、源日期为日期格式的字符串 如:2015-11-12 11:34:45
* 2、源日期为Date类型 如:new Date();
*/
function getNowDate(fmt){
var nowDate=new Date();
if(fmt==1){
return dateFormat(nowDate, "2015-11-12 11:34:45");
}else{
return dateFormat(nowDate,"yyyy-MM-dd");
}
} var dateUtils = {
"dateFormat" : dateFormat, // 根据格式显示日期
"getMonthDays" : getMonthDays, //根据年份和月份计算出有多少天
"getDateTime" : getDateTime, //获取时间毫秒数
"cala" : cala //根据日期计算该日为一周中的某天
}; //暴露对外的接口
module.exports = dateUtils;
});
js日期工具的更多相关文章
- c# js日期工具
c#获取日期当年最后一天:model.StartDate.AddYears(1).AddSeconds(-1) js日期工具: var dateToolObj = { methods: { //url ...
- JS 日期工具类-基于yDate
源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...
- JS日期工具类(转)
javascript Date format(js日期格式化) https://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.htm ...
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...
- 我用的一些Node.js开发工具、开发包、框架等总结
开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...
- Node.js开发工具、开发包、框架等总结
开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...
- Node.js 常用工具
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...
- java工具类-日期工具类
1.获得时间戳 为了统一其他语言的如php和unix系统获取的时间戳是10位长度的,精确到秒. java时间戳长度是13位,精确到毫秒 我们获取时间戳需要相应处理. //获取当前时间戳,除以1000, ...
- Node.js 常用工具util包
Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.is ...
随机推荐
- 如何在Word中排出漂亮的代码
引言 学数学和计算机,当然还是用LaTeX排版技术文章更方便.但有时候还是迫不得已需要用Word写作,另外Word其实也有Word的好处,比如细节上的修改要比LaTeX方便. 从Matlab高亮代码复 ...
- 迁移数据到历史表SQL(转)
有时工作需要需要把当前表的数据,移到历史表中,而历史表基本是以时间(年)为后缀来命名历史表的,如 A_2011,A_2012,在移数据时,要按数据的时间,移到不同的表中,且由于如果数据有同步.一次处理 ...
- C++解析(6):函数参数的扩展
0.目录 1.函数参数的默认值 2.函数默认参数的规则 3.函数占位参数 4.小结 1.函数参数的默认值 C++可以在函数声明时为参数提供一个默认值 当函数调用时没有提供参数的值,则使用默认值 参数的 ...
- C++11Mutex(互斥锁)详解
多个线程访问同一资源时,为了保证数据的一致性,最简单的方式就是使用 mutex(互斥锁). (1).直接操作 mutex,即直接调用 mutex 的 lock / unlock 函数.此例顺带使用了 ...
- 【BZOJ2339】卡农(递推,容斥)
[BZOJ2339]卡农(递推,容斥) 题面 BZOJ 题解 先简化一下题意: 在\([1,2^n-1]\)中选择不重复的\(m\)个数,使得他们异或和为\(0\)的方案数. 我们设\(f[i]\)表 ...
- 【BZOJ3242】【NOI2013】快餐店(动态规划)
[BZOJ3242][NOI2013]快餐店(动态规划) 题面 BZOJ 题解 假设我们要做的是一棵树,那么答案显然是树的直径的一半. 证明? 假设树的直径是\(2d\),那么此时最远点的距离是\(d ...
- BZOJ2716:[Violet 3]天使玩偶——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=2716 样例输入 2 31 12 32 1 21 3 32 4 2 样例输出 1 2 ———————— ...
- 《Java程序设计》第7周学习总结 20165218 2017-2018-1
20165218 2017-2018-1 <Java程序设计>第7周学习总结 教材学习内容总结 JDBC与MySQL数据库 数据库的功能:数据的存储.查询.修改.安全 MySQL:数据库: ...
- 手脱EZIP v1.0
一.单步 1.载入PEID查壳 EZIP v1.0 2.载入OD,一上来就是一个大跳转,F8单步一直走 0040D0BE > $ /E9 jmp Notepad.004102DC ; //入口点 ...
- mysql cpu 占用高
vi /etc/my.cnf [mysqld]tmp_table_size=200M mysql> show global status like ‘created_tmp%‘; +—————— ...