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. Java BigDecimal类型的 加减乘除运算

    原文: https://blog.csdn.net/xuwei_net/article/details/81253471 加法:add 减法:subtract 乘法:multiply 除法:divid ...

  2. ABP之启动配置

    ASP.NET Boilerplate提供了在StartUp中配置其模块的基础设施和模型. 配置ASP.NET Boilerplate 配置ABP是在模块的PreInitialize 方法中做的,如下 ...

  3. openstack第一章:keystone

    第一篇keystone— 身份认证服务 一.Keystone介绍:       keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身 ...

  4. Centos7安装配置Nginx

    Nginx 安装 系统平台:CentOS 7.4 64位. 一,安装编译工具及文件 yum -y install make zlib zlib-devel gcc-c++ libtool openss ...

  5. python操作Excel、openpyxl 之图表,折线图、饼图、柱状图等

    一.准备 需要模块: from openpyxl.workbook import Workbook from openpyxl.chart import Series,LineChart, Refer ...

  6. git配置ssh秘钥(公钥以及私钥)

    桌面版git,  本文以github为例,gitlab等其它托管平台一样操作 当我们将代码托管到远程平台(GitHub.gitlab等)时, 我们需要在本地使用git进行push/pull代码时,需要 ...

  7. open live writer 测试

    什么是Hash表 1.定义 Hash(散列/哈希),就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散 ...

  8. syntax error near unexpected token `$'\r''

    这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m需要转换成linux/unix ...

  9. 关于概率dp的HINT

    摘自shadowice1984的blog 这里想讲一个关于概率题的小技巧,就是关于如何求某个事件发生的概率PP,事实上大家也清楚,除了一些特殊的近似算法之外,我们在程序中计算概率的方法无非就是加减乘除 ...

  10. [HNOI2012]集合选数(状压DP+构造)

    题目要求若出现x,则不能出现2x,3x 所以我们考虑构造一个矩阵 \(1\ 2\ 4 \ 8--\) \(3\ 6\ 12\ 24--\) \(9\ 18\ 36--\) \(--\) 不难发现,对于 ...