1.格式化时间

function GetDateTimeFormatter(value) {
        if (value == undefined) {
            return "";
        }
        /*json格式时间转js时间格式*/
        value = value.substr(1, value.length - 2);
        var obj = eval('(' + "{Date: new " + value + "}" + ')');
        var dateValue = obj["Date"];
        if (dateValue.getFullYear() < 1900) {
            return "";
        }

return dateValue.format("yyyy-mm-dd HH:MM:ss");
    }

2.获取当前时间

function GetCurTime() {
        var d = new Date();
        var years = d.getFullYear();
        var month = add_zero(d.getMonth() + 1);
        var days = add_zero(d.getDate());
        var hours = add_zero(d.getHours());
        var minutes = add_zero(d.getMinutes());
        var seconds = add_zero(d.getSeconds());
        var ndate = years + "-" + month + "-" + days + "- " + hours + ":" + minutes + ":" + seconds;
        return ndate;
    }
    function add_zero(temp) {
        if (temp < 10) return "0" + temp;
        else return temp;
    }

3.时间比较

eg . var a = GetDateTimeFormatter(t1);

var b =GetCurTime();

if(a>b){}//这样即可

4.ie下时间兼容问题

js时间推荐格式:2000/01/01

如使用2000-01-01在ie8及以下版本,存在兼容性问题

var dateValue =  "2013-01-01 01:01:00";
var createDT = new Date(); //创建时间
createDT.setFullYear(dateValue.substr(0, 4));
createDT.setMonth(dateValue.substr(5, 2) - 1);
createDT.setDate(dateValue.substr(8, 2));
createDT.setHours(dateValue.substr(11, 2));
createDT.setMinutes(dateValue.substr(14, 2));
createDT.setSeconds(0);
/**
* 解析输入的dateStr,返回Date类型。
* dateStr: XXXX-XX-XX
*/
function parseDate(dateStr){
var strArray = dateStr.split("-");
if(strArray.length == 3){
return new Date(strArray[0], strArray[1], strArray[2]);
}else{
return new Date();
}
}

5.Date方法扩展

/*
函数:日期 加n天
参数:n是天数
返回:n天后的日期
*/
Date.prototype.addDays = Date.prototype.addDays || function (n) {
this.setDate(this.getDate() + n);
return this;
}
/*
函数:日期 减n天
参数:n是天数
返回:n天后的日期
*/
Date.prototype.minusDays = Date.prototype.minusDays || function (n) {
this.setDate(this.getDate() - n);
return this;
}
/*
函数:日期 加n天
参数:n是天数
返回:n天后的日期
*/
Date.prototype.getWeek = Date.prototype.getWeek || function (date) {
// var n = date.getDay();
var n = this.getDay();
var rtnStr = "";
switch (n) {
case 0: { rtnStr = "星期日"; break; }
case 1: { rtnStr = "星期一"; break; }
case 2: { rtnStr = "星期二"; break; }
case 3: { rtnStr = "星期三"; break; }
case 4: { rtnStr = "星期四"; break; }
case 5: { rtnStr = "星期五"; break; }
case 6: { rtnStr = "星期六"; break; }
default: { rtnStr = ""; break; }
}
return rtnStr;
}
/*
函数:把字符串转换为日期对象
参数:yyyy-mm-dd或yyyy/mm/dd形式的字符串
返回:Date对象
注:IE下不支持直接实例化日期对象,如new Date("2011-04-06")
*/
Date.prototype.convertDate = function (date) {
var flag = true; var dateArray = date.split("-");
if (dateArray.length != 3) {
dateArray = date.split("/");
if (dateArray.length != 3) {
return null;
}
// flag = false;
}
var newDate = new Date();
if (flag) {
// month从0开始
newDate.setFullYear(dateArray[0], dateArray[1] - 1, dateArray[2]);
}
else {
newDate.setFullYear(dateArray[2], dateArray[1] - 1, dateArray[0]);
}
newDate.setHours(0, 0, 0);
return newDate;
}; /*
函数:计算两个日期之间的差值
参数:date是日期对象
flag:ms-毫秒,s-秒,m-分,h-小时,d-天,M-月,y-年
返回:当前日期和date两个日期相差的毫秒/秒/分/小时/天
*/
Date.prototype.dateDiff = function (date, flag) {
var msCount = 24 * 60 * 60 * 1000;
this.setHours(0, 0, 0, 0);
date.setHours(0, 0, 0, 0);
var diff = this.getTime() - date.getTime();
return Math.floor(diff / msCount); switch (flag) {
case "ms":
msCount = 1;
break;
case "s":
msCount = 1000;
break;
case "m":
msCount = 60 * 1000;
break;
case "h":
msCount = 60 * 60 * 1000;
break;
case "d":
msCount = 24 * 60 * 60 * 1000;
break;
}
return Math.floor(diff / msCount);
}; /*
函数:格式化日期
参数:formatStr-格式化字符串
d:将日显示为不带前导零的数字,如1
dd:将日显示为带前导零的数字,如01
ddd:将日显示为缩写形式,如Sun
dddd:将日显示为全名,如Sunday
M:将月份显示为不带前导零的数字,如一月显示为1
MM:将月份显示为带前导零的数字,如01
MMM:将月份显示为缩写形式,如Jan
MMMM:将月份显示为完整月份名,如January
yy:以两位数字格式显示年份
yyyy:以四位数字格式显示年份
h:使用12小时制将小时显示为不带前导零的数字,注意||的用法
hh:使用12小时制将小时显示为带前导零的数字
H:使用24小时制将小时显示为不带前导零的数字
HH:使用24小时制将小时显示为带前导零的数字
m:将分钟显示为不带前导零的数字
mm:将分钟显示为带前导零的数字
s:将秒显示为不带前导零的数字
ss:将秒显示为带前导零的数字
l:将毫秒显示为不带前导零的数字
ll:将毫秒显示为带前导零的数字
tt:显示am/pm
TT:显示AM/PM
返回:格式化后的日期
*/
Date.prototype.format = function (formatStr) {
var date = this; /*
函数:填充0字符
参数:value-需要填充的字符串, length-总长度
返回:填充后的字符串
*/
var zeroize = function (value, length) {
if (!length) {
length = 2;
}
value = new String(value);
for (var i = 0, zeros = ''; i < (length - value.length) ; i++) {
zeros += '0';
}
return zeros + value;
}; return formatStr.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|M{1,4}|yy(?:yy)?|([hHmstT])\1?|[lLZ])\b/g, function ($0) {
switch ($0) {
case 'd': return date.getDate();
case 'dd': return zeroize(date.getDate());
case 'ddd': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][date.getDay()];
case 'dddd': return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][date.getDay()];
case 'M': return date.getMonth() + 1;
case 'MM': return zeroize(date.getMonth() + 1);
case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getMonth()];
case 'MMMM': return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][date.getMonth()];
case 'yy': return new String(date.getFullYear()).substr(2);
case 'yyyy': return date.getFullYear();
case 'h': return date.getHours() % 12 || 12;
case 'hh': return zeroize(date.getHours() % 12 || 12);
case 'H': return date.getHours();
case 'HH': return zeroize(date.getHours());
case 'm': return date.getMinutes();
case 'mm': return zeroize(date.getMinutes());
case 's': return date.getSeconds();
case 'ss': return zeroize(date.getSeconds());
case 'l': return date.getMilliseconds();
case 'll': return zeroize(date.getMilliseconds());
case 'tt': return date.getHours() < 12 ? 'am' : 'pm';
case 'TT': return date.getHours() < 12 ? 'AM' : 'PM';
}
});
}

6.时间戳

获取当前时间戳:
第一种方法: var timestamp = Date.parse(new Date());
结果:1280977330000
第二种方法: var timestamp = (new Date()).valueOf();
结果:1280977330748 第三种方法: var timestamp=(new Date()).getTime();
结果:1280977330748 第一种:获取的时间戳是把毫秒改成000显示, 第二种和第三种是获取了当前毫秒的时间戳。

有时遇到返回的时间格式是json字符串,转成时间戳:

parseInt((dateJsonStr).replace("/Date(", "").replace(")/", ""), 10);

js 时间处理的更多相关文章

  1. js 时间构造函数

    js 时间构造函数,js中没有类似ToString("yyyy-mm-dd HH:mm:ss") 的方法,但是可以用下面的方式来初始化 var cdate = new Date(& ...

  2. js时间倒计时

    看了网上的其他的例子,觉得写的都有点复杂,不好理解,于是自己动手写了个. 本来想封装成jquery插件,但是觉得因为功能很简单,没有必要做成jquery插件,引用的时候不需要引入jqery库,这里直接 ...

  3. Js 时间与字符串转示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. js获取当前时间,js时间函数

    Js获取当前日期时间及其它操作,js时间函数 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); ...

  5. js 时间函数 及相关运算大全

    js 时间函数 及相关运算大全 var myDate = new Date(); myDate.getYear();        //获取当前年份(2位) myDate.getFullYear(); ...

  6. js时间过滤方法

    js时间过滤  自己写的  记录一下 /** * * 过滤时间格式 * Created by Catlina at 2019.4.26 */ export const setTime = time = ...

  7. js 时间类函数

    js 时间类是  Date() var currtime = new Date();// 实例一个时间,是当前时间 接收一个时间戳为参数 var time2=new Date(currtime.get ...

  8. js 时间格式化 (兼容safari)

    js 时间格式化,兼容IE8和safari浏览器. function formatDate(date, fmt, near, type) { var dateStr = date; if (!date ...

  9. js时间格式化函数,支持Unix时间戳

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

随机推荐

  1. Bug2算法的实现(RobotBASIC环境中仿真)

    移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求--避障.之前简单介绍过Bug避障算法,但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象,只能说似懂非懂.我不是天才,不 ...

  2. [SAP ABAP开发技术总结]Function远程、同步、异步调用

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. C语言文法定义与C程序的推导过程

    program à external_declaration | program external_declaration <程序> ->  <外部声明> |  < ...

  4. style不同取值对应的日期、时间格式

    from : http://www.cnblogs.com/Gavinzhao/archive/2009/11/10/1599690.html sql server2000中使用convert来取得d ...

  5. hdu 5943 Kingdom of Obsession 二分图匹配+素数定理

    Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  6. Codeforces Round #375 (Div. 2) D. Lakes in Berland dfs

    D. Lakes in Berland time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  7. Java Abstract class and Interface

    Abstract Class 在定义class的时候必须有abstract 关键字 抽象方法必须有abstract关键字. 可以有已经实现的方法. 可以定义static final 的常量. 可以实现 ...

  8. oracle学习之bulk collect用法

    通过bulk collect减少loop处理的开销,使用Bulk Collect提高Oracle查询效率 Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使 ...

  9. [转载] 理解 epoll 的事件触发机制

    原文: http://weibo.com/p/1001603862394207076573?sudaref=weibo.com epoll的I/O事件触发方式有两种模式:ET(Edge Trigger ...

  10. PL/SQL 编写规范

    大小写风格 所有数据库关键字和保留字均大写; 缩进风格 使用空格, 缩进2格(前边空两个格, 后边要与SQL语句的一致, 比如下面:) SELECT * FROM TABLE 空格及换行 1行只写1条 ...