也写dateUtil.js
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:
- 觉得js用
new Date("2013/08/01 11:20:00")的方式还是挺好的。所以strDate没写了。 dateStr方法用到参数格式从java的simpleDateFormat里面取的。所以与它的是一致的。- 用来把个日期转成指定字符串个人觉得够用了,关于性能问题,欢迎各路大虾提点。
- http://www.cnblogs.com/nimeiz/p/3446292.html
也写dateUtil.js的更多相关文章
- jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...
- vue element-ui怎样提炼一个自己写的js当作公共js
vue element-ui怎样提炼一个自己写的js当作公共js请教一下各位大神,我刚刚触摸vue element-ui几天,写的一个清晰检索的input框,现在需当作项目公共的部分,可遭需的html ...
- 使用Xcode IDE写node.js
最近在玩node.js 但是发现很多IDE就是用不顺手 后来发现Xcode可以剖析java script 于是试着使用Xcode来当做node.js的编辑器 首先,在Mac上必须先安装node.js的 ...
- 让我们纯手写一个js继承吧
继承在前端逻辑操作中是比较常见的,今天我们就从零开始写一个js的继承方式 在es5中继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上Parent.call(this),在es6中则 ...
- 从 0 到 1 到完美,写一个 js 库、node 库、前端组件库
之前讲了很多关于项目工程化.前端架构.前端构建等方面的技术,这次说说怎么写一个完美的第三方库. 1. 选择合适的规范来写代码 js 模块化的发展大致有这样一个过程 iife => commonj ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
- 写一个js向左滑动删除 交互特效的插件——Html5 touchmove
需求描述 需要实现类似QQ中对联系人的操作:向左滑动,滑出删除按钮.滑动超过一半时松开则自动滑到底,不到一半时松开则返回原处. 纯js实现 使用了h5的touchmove等事件,以及用js动态改变cs ...
- 【转载】写一个js库需要怎样的知识储备和技术程度?
作者:小爝链接:https://www.zhihu.com/question/30274750/answer/118846177来源:知乎著作权归作者所有,转载请联系作者获得授权. 1,如何编写健壮的 ...
- 如何写一个Js上传图片插件。
项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...
随机推荐
- uWSGI、WSGI、uwsgi是什么?
uWSGI是一个web服务器,它实现了WSGI协议.uwsgi协议.HTTP等协议: WSGI是web服务器网管接口,是一套协议,用于接收用户请求并将请求进行初次封装,然后交给web框架: uwsgi ...
- destruct析构函数里操作文件出现的问题
这几天要给后台加一个记录操作日志的功能,可是项目已经开发完了不可能再去改以前的代码了,那有什么快捷的方法呢? 项目使用的ThinkPHP3.23 ,为了方便权限控制,后台控制器结构为:普通控制器 ex ...
- C#、WPF中如何自定义鼠标样式
需求:在C#中如何自定义鼠标样式?在这里可以分两种情况,一种是在winForm,另一种是在WPF中(注意使用的Cursor对象不一样) 解决办法如下: a.首先针对WinForm中,我们可以采用图标加 ...
- JQuery td内容获取,修改
业务需求:获取某个表格中每一行第四个td内容,并根据内容为当前td重新赋值 $(".listtable.table.table-striped.table-bordered.table-ho ...
- 2019-04-04 Mybatis学习知识点
1. 比较#和$的区别 #是占位符?,$是字符串拼接.因此使用$的时候,如果参数是字符串类型,那么要使用引号 尽量使用#而不是$ 当参数表示表名或列名的时候,只能使用$ 2. 多参数时候 配置文件中使 ...
- Python3.7源码在windows(VS2015)下的编译和安装
Python3.7源码在windows(VS2015)下的编译和安装 下载官方源码,使用vs2015(WIN10SDK),最python3.7.0的源码进行编译,编译出不同的版本(release,de ...
- Power BI For Competition
It's traditional report design, I'm insufficient for designing that if had a designer to help me wil ...
- 【12】Django 中间件
前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装 ...
- django xadmin(1)
filter_horizontal 从‘多选框’的形式改变为‘过滤器’的方式,水平排列过滤器,必须是一个 ManyToManyField类型,且不能用于 ForeignKey字段,默认地,管理工具使用 ...
- Linux核心命令使用方法
一.Linux命令行常用快捷键 ctrl + c cancel 取消当前的操作 ctrl + l (小写字母L) clear(命令)清空当前屏幕 ctrl + d 退出当前用户 ctrl + r 查找 ...