yl.dateUtil = {
/**
* y 年
* M 月
* d 日
* H 时 h 时(am/pm)
* m 分
* s 秒
* S 毫秒
* a 上午/下午(am/pm)
* setInterval(function(){
* input111.value = yl.dateUtil.dateStr(new Date(), "要一个给小于9的d数m字s前H面M加0返回字符串的方法yyyy");
* }, 1000);
*/
dateStr: function (date, str) {
if (!date instanceof Date) {
return str;
}
//match之后得到数组
//遍历数组,
//判断各个元素长度、内容,做对应替换
var reg = /yyyy|yy|MM|M|dd|d|HH|H|h|mm|m|ss|s|SSS|S|a/g;
var strArr = str.match(reg);
for (var i = 0, len = strArr.length; i < len; i++) {
//console.log(strArr[i]);
switch (strArr[i]) {
case "yyyy":
str = str.replace(/yyyy/, date.getFullYear());
break;
case "yy":
str = str.replace(/yy/, (date.getFullYear()+"").substr(2,2));
break;
case "MM":
str = str.replace(/MM/, this.getLe9Str(date.getMonth()+1));
break;
case "M":
str = str.replace(/M/, date.getMonth()+1);
break;
case "dd":
str = str.replace(/dd/, this.getLe9Str(date.getDate()));
break;
case "d":
str = str.replace(/d/, date.getDate());
break;
case "HH":
str = str.replace(/HH/, this.getLe9Str(date.getHours()));
break;
case "H":
str = str.replace(/H/, date.getHours());
break;
case "h":
var s = date.getHours();
str = str.replace(/h/, s > 12 ? s % 12 : s);
break;
case "mm":
str = str.replace(/mm/, this.getLe9Str(date.getMinutes()));
break;
case "m":
str = str.replace(/m/, date.getMinutes());
break;
case "ss":
str = str.replace(/ss/, this.getLe9Str(date.getSeconds()));
break;
case "s":
str = str.replace(/s/, date.getSeconds());
break;
case "SSS":
str = str.replace(/SSS/, this.getLe99Str(date.getMilliseconds()));
break;
case "S":
str = str.replace(/S/, date.getMilliseconds());
break;
case "a":
str = str.replace(/a/, date.getHours() > 12 ? "pm" : "am");
break;
}
}
//console.log(str);
return str;
},
strDate: function () { },
//要一个给小于9的数字前面加0返回字符串的方法
getLe9Str: function (num) {
return num > 9 ? "" + num : "0" + num;
},
//小于100前面加00或者0
getLe99Str: function (num) {
if (num > 9 && num < 100) {
return "0"+num;
} else {
return this.getLe9Str(num);
}
}
};

调用

<body>
<input type="text" id="input111" style="width:500px;"/>
<script type="text/javascript" src="ylUtil.js"></script> <script type="text/javascript"> var input111 = document.getElementById("input111");
setInterval(function(){
input111.value = yl.dateUtil.dateStr(new Date(), "a h:mm:ss`SSS~~~~yyyy年M月d日");
}, 1);
</script>
</body>

ps:

  1. 觉得js用new Date("2013/08/01 11:20:00")的方式还是挺好的。所以strDate没写了。
  2. dateStr方法用到参数格式从java的simpleDateFormat里面取的。所以与它的是一致的。
  3. 用来把个日期转成指定字符串个人觉得够用了,关于性能问题,欢迎各路大虾提点。
  4. http://www.cnblogs.com/nimeiz/p/3446292.html

也写dateUtil.js的更多相关文章

  1. jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...

  2. vue element-ui怎样提炼一个自己写的js当作公共js

    vue element-ui怎样提炼一个自己写的js当作公共js请教一下各位大神,我刚刚触摸vue element-ui几天,写的一个清晰检索的input框,现在需当作项目公共的部分,可遭需的html ...

  3. 使用Xcode IDE写node.js

    最近在玩node.js 但是发现很多IDE就是用不顺手 后来发现Xcode可以剖析java script 于是试着使用Xcode来当做node.js的编辑器 首先,在Mac上必须先安装node.js的 ...

  4. 让我们纯手写一个js继承吧

    继承在前端逻辑操作中是比较常见的,今天我们就从零开始写一个js的继承方式 在es5中继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上Parent.call(this),在es6中则 ...

  5. 从 0 到 1 到完美,写一个 js 库、node 库、前端组件库

    之前讲了很多关于项目工程化.前端架构.前端构建等方面的技术,这次说说怎么写一个完美的第三方库. 1. 选择合适的规范来写代码 js 模块化的发展大致有这样一个过程 iife => commonj ...

  6. 手写Koa.js源码

    用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...

  7. 写一个js向左滑动删除 交互特效的插件——Html5 touchmove

    需求描述 需要实现类似QQ中对联系人的操作:向左滑动,滑出删除按钮.滑动超过一半时松开则自动滑到底,不到一半时松开则返回原处. 纯js实现 使用了h5的touchmove等事件,以及用js动态改变cs ...

  8. 【转载】写一个js库需要怎样的知识储备和技术程度?

    作者:小爝链接:https://www.zhihu.com/question/30274750/answer/118846177来源:知乎著作权归作者所有,转载请联系作者获得授权. 1,如何编写健壮的 ...

  9. 如何写一个Js上传图片插件。

    项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...

随机推荐

  1. STL--关系型容器

    STL--关系型容器 1.树的基本概念 1.1二叉搜索树 二叉搜索树:它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值: 若它的右子树不空, ...

  2. JS 设计模式八 -- 发布订阅者模式

    概念 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多(一个发布,多个观察)的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 优点 1 ...

  3. rpm安装查看卸载软件

    1.安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv example.rpm 安装 example.rpm ...

  4. ArrayList循环遍历并删除元素的几种情况

    如下代码,想要循环删除列表中的元素b,该怎么处理? public class ListDemo { public static void main(String[] args) { ArrayList ...

  5. 015模块——起别名

    1.import起别名:通过as关键字可以给模块起别名: 模块名一旦起别名,原模块名就不能再使用 2.起别名的作用:①可以简化模块名字 import mmmmmmmmmmm3 as my_m3 pri ...

  6. ElementUI DatePicker 日期选择器控制选择时间范围

    选择今天以及今天之后的日期 <el-date-picker v-model="value1" type="date" placeholder=" ...

  7. How far away ? HDU - 2586

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. <TCP/IP原理> (四) IP编址

    1.IP地址的基本概念:作用.结构.类型 2.特殊地址:作用.特征 网络地址.广播地址(直接.受限) 0.0.0.0 环回地址 3.单播.多播.广播地址:特征 4.专用地址:作用.范围 5.计算和应用 ...

  9. [PL]如果天空是黑暗的,那就摸黑生存

    “如果天空是黑暗的,那就摸黑生存:如果发出声音是危险的,那就保持沉默:如果自觉无力发光的,那就蜷缩于墙角.但不要习惯了黑暗,就为黑暗辩护:不要为自己的苟且而得意:不要嘲讽那些比自己更勇敢更热情的人们. ...

  10. golang中使用Redis

    一.golang中安装Redis github地址:https://github.com/garyburd/redigo 文档地址:http://godoc.org/github.com/garybu ...