也写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插件的写法 ; ( ...
随机推荐
- 逆向-攻防世界-CSAW2013Reversing2
运行程序乱码,OD载入搜索字符串,断电到弹窗Flag附近. 发现跳过00B61000函数,弹窗乱码,我们试试调用00B61000函数.将00B61094的指令修改为JE SHORT 00B6109b. ...
- 从jsp到java文件再返回到前台页面的过程
客户端请求jsp页面总共分为三个阶段: <%@ page language="java" contentType="text/html; charset=utf-8 ...
- Selenium 4即将发布:每个QA都应该知道的
阅读原文 Simon Stewart(Selenium的创始成员)在班加罗尔的Selenium大会议上正式确认了Selenium4.0的发布日期和一些主要更新.我们先来提前了解一下Selenium 4 ...
- php框架之thinkphp
日常开发中经常使用thinkphp5进行开发工作,总结一些使用中遇到的问题和使用的东西 1. web内置服务 V5.1.5+版本开始,增加了启动内置服务器的指令,方便测试 >php think ...
- Flutter自定义路由PageRouteBuilder
自定义路由翻转,渐变,左右滑动 方法如下: 首先继承 PageRouteBuilder ,重写方法 将MaterialPageRoute改为showSearch import 'package:flu ...
- jsonp原理,封装,应用(vue项目)
jsonp原理 JSON是一种轻量级的数据传输格式. JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题.由于同源策略,一般来说位于 ...
- sts 创建springMVC项目---- maven和tomcat 错误处理
今天学习spring的时候,学到了springMVC, 因为springMVC 就是beginning spring 书籍的第三章,为了更深入或更简单的起步学习springMVC, 我又找了另外一本书 ...
- JS在一个数组中查找某个用户输入的值,返回对应值所在索引值
方法有很多种 第一:直接循环,判断输出 第二:使用indexOf 正常来说,为了增加工作效率一般会选择indexOf,但是indexOf存在兼容性问题,因此最完善的写法如下 function inde ...
- spring boot下使用logback或log4j生成符合Logstash标准的JSON格式
spring boot下使用logback或log4j生成符合Logstash标准的JSON格式 一.依赖 由于配置中使用了json格式的日志输出,所以需要引入如下依赖 "net.logst ...
- Project 的ProjectTypeGuids和Solution的Project节点说明
https://www.cnblogs.com/jackking/p/6220085.html ProjectTypeGuids和Project 节点说明 <ProjectGuid>{BE ...