前言:一直没找到好用的javascript日期格式化工具,自己写了一个,方便以后复用

1、主要功能

(1)支持任意顺序的日期格式排列:yyyy=年,MM=月,dd=日,HH=时,mm=分,ss=秒,sss=毫秒

(2)支持js的Date对象和标准Long值日期格式化(例如java发送到前端的日期是一个long值)

(3)日期出现个位数自动填充0

2、方法实现

/**
*日期格式化 str:格式化字符,d:js日期对象或long值,d为空则自动获取当前日期格式化
*/
function dateFormat(str,d) {
if( checkNull(str)){ //如果格式化字符为空,返回空字符
return "";
}
if(checkNull(d)){ //如果日期为空,自动获取当前日期
d=new Date();
}else if(d.constructor!=Date){//如果参数不是一个日期对象,就认为是一个标准Long值日期
d=new Date(d);
}
return str.replace("yyyy",d.getFullYear()).replace("MM",fillZero(d.getMonth()+1)).replace("dd",fillZero(d.getDate())).replace("HH",fillZero( d.getHours())).replace("mm",fillZero(d.getMinutes())).replace("ss",fillZero(d.getSeconds())).replace("sss",d.getMilliseconds());
} //填充0
function fillZero(value){
if(value.toString().length<2){
return "0"+value;
}
return value;
}
//判空
function checkNull(value){
if(!value||value==null||typeof(value) == "undefined"||value==""){
return true;
}
return false;
}

3、测试demo

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>日期格式化 by eguid</title>
</head>
<body> <p>支持任意顺序日期格式排列:</p>
<p id="demo">例如:dd日MM月yyyy年 HH:mm:ss</p>
<script>
/** 
*日期格式化 str:格式化字符,d:js日期对象,d为空则自动获取当前日期格式化 
*/  
function dateFormat(str,d) {  
if( checkNull(str)){  //如果格式化字符为空,返回空字符  
        return "";    
}
if(checkNull(d)){  //如果日期为空,自动获取当前日期  
    d=new Date();    
}else if(d.constructor!=Date){//如果参数不是一个日期对象,就认为是一个标准Long值日期
d=new Date(d);
}
 return  str.replace("yyyy",d.getFullYear()).replace("MM",fillZero(d.getMonth()+1)).replace("dd",fillZero(d.getDate())).replace("HH",fillZero( d.getHours())).replace("mm",fillZero(d.getMinutes())).replace("ss",fillZero(d.getSeconds())).replace("sss",d.getMilliseconds());  
}   //填充0  
function fillZero(value){  
if(value.toString().length<2){  
    return "0"+value;  
}  
return value;  
}  
//判空  
function checkNull(value){  
if(!value||value==null||typeof(value) == "undefined"||value==""){  
return true;  
}  
return false;  
}  
//运行日期格式化
var str = document.getElementById("demo").innerHTML;
document.getElementById("demo").innerHTML =dateFormat(str);
</script> </body>
</html>

结果:

支持任意顺序日期格式排列:

例如:19日12月2016年 11:13:56:815

javascript常用开发笔记:一个简单强大的js日期格式化方法的更多相关文章

  1. TERSUS无代码开发(笔记05)-简单实例电脑端页面设计

    案例笔记电脑端页面设计   1.新建项目(请假管理qjgl)   2.开发软件界面介绍(常用的功能按键)      3.目录中显示元件对象      4.对元件对象的操作主要方式是双击(双击哪个元件, ...

  2. TERSUS无代码开发(笔记09)-简单实例前端样式设计

    前端常用样式设计 =========================================================================================== ...

  3. TERSUS无代码开发(笔记06)-简单实例手机端页面设计

    手机端的设计 1.页面说明 2.默认页面===>提交请假单(上面页面双击进入,页面主要编辑区) 2.1默认页面===>提交请假单===>头部区(页面部份主要编辑区01) 2.1.1默 ...

  4. 开发部署一个简单的Servlet

    Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...

  5. TERSUS无代码开发(笔记08)-简单实例电脑端后台逻辑开发

    主管审批功能逻辑开发 1.查询逻辑开发(查询待审批记录) 2.批准处理(将选中的一条记录进行批准处理)  =============================================== ...

  6. TERSUS无代码开发(笔记07)-简单实例手机端后台逻辑开发

    提交申请逻辑开发 1.添加父级对象引用(从父级对象中获取前端输入框的值) 1.设计数据库表(表名和字段名称不能用中文) 2.设计置数据库主键(可设联合主键) 3.传值形成数据实列处理 4.服务器端处理 ...

  7. LayaAir引擎开发HTML5最简单教程(面向JS开发者)

    LayaAir引擎开发HTML5最简单教程(面向JS开发者) 一.总结 一句话总结:开发游戏还是得用游戏引擎来开发,其实很简单啦 切记:开发游戏还是得用游戏引擎来开发,其实很简单,引擎很多东西都帮你做 ...

  8. javascript日期格式化方法汇总

    本文给大家汇总介绍了javascript格式化日期时间的几种常用方法,个人对最后一种个性化输出时间比较有兴趣,基本上只要项目中能用到都是使用这种,推荐给小伙伴们. 方法一: ? 1 2 3 4 5 6 ...

  9. javaScript prototype实例(正则) 自定义日期格式化方法

    一个JS自定义日期格式化方法,包括了不少知识点,以下方法来自jQuery DataTable中文的官方参考 //return (new Date(data)).Format("yyyy-MM ...

随机推荐

  1. 利用WebLog Experet分析日志获取性能需求

    一.下载WebLog Expert日志分析工具 官网下载地址:http://www.weblogexpert.com/download.htm 二.安装 安装很简单,点击“下一步”默认安装即可 三.配 ...

  2. 需求收集过程实例之 - GF Phase 1

    正统的需求过程是怎样呢?各位看客有兴趣可以问问google 百度.本人的体会是理论很清晰,现实很混沌.这篇随笔讲述的是我参与的几个项目的需求收集过程.有的很顺利,有的却是乱中求生.但是不管怎样,最终这 ...

  3. Java集合之Map和Set

    以前就知道Set和Map是java中的两种集合,Set代表集合元素无序.不可重复的集合:Map是代表一种由多个key-value对组成的集合.然后两个集合分别有增删改查的方法.然后就迷迷糊糊地用着.突 ...

  4. C语言学习第七章

    今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针. 指针:指针是一个变量,它存储另一个对象 ...

  5. app测试特点

    一.安装与卸载1.软件安装后是否可以正常运行:2.安装过程中是否可以中断3.安装空间不足时是否有相应的提示4.是否可以卸载应用(桌面卸载和应用卸载)二.权限测试1.扣费风险:包括发送短信.拨打电话.连 ...

  6. bzoj4514 [Sdoi2016]数字配对

    Description 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对 ...

  7. JVM 堆内存,参数优化

    Java堆内存 http://www.importnew.com/19593.html JVM诊断之查看运行参数 JVM 垃圾回收器工作原理及使用实例介绍 https://www.ibm.com/de ...

  8. java线程(一)

    java线程基础 什么是线程? 这里引用百度百科的一句话:"线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程ID,当 ...

  9. JS实现鼠标悬浮,显示内容

    其实就是增加title属性

  10. LINQ基础(一)

    LINQ(Language Integrated Query,语言集成查询),在C#语言中集成了查询语法,可以用相同的语法访问不同的数据源. LINQ提供了不同数据源的抽象层,所以可以使用相同的语法. ...