javascript 的Date 格式化, 模仿shell中date命令的格式
原文:javascript 的Date 格式化, 模仿shell中date命令的格式
shell 中显示当前的日期
[root@localhost]$ date '+%Y-%m-%d %H:%M:%S'
2015-01-19 16:24:58
把javascript 中的Date object 格式化成适合的字符串,很不方便,模拟shell中的格式
下面先用3段简单的代码来说明模拟函数中用到的特性
字符串的replace
var a = '1234'
undefined
a.replace('1', 'ab')
"ab234"
a
"1234"
b = a.replace('1', 'ab')
"ab234"
b
"ab234"注意:replace是返回替换后的结果,而不是直接在字符串中更改
Date的函数
d = new Date();
Mon Jan 19 2015 17:08:04 GMT+0800 (中国标准时间)
d.getFullYear()
2015
d.getMonth()
0
d.getDate()
19
d.getHours()
17
d.getMinutes()
8
d.getSeconds()
4
// 单位是毫秒
d.getTime()
1421658484111注意getTime的单位
正则匹配
fmt = '%Y-%m-%d'
"%Y-%m-%d" // 要特别注意其中的括号
/(%Y)/.test(fmt)
true
RegExp.$1
"%Y" /%Y/.test(fmt)
true
RegExp.$1
""
// return替换后的结果, 而不是直接替换fmt
fmt.replace(RegExp.$1, 'abc')
"abc-%m-%d"
/(Y/.test(fmt)模拟的代码
// chrome 按F12,打开drawer测试
Date.prototype.format = function(fmt)
{ //author: meizz
var o = {
"%m" : this.getMonth()+1+'', //月份
"%d" : this.getDate() + '', //日
"%H" : this.getHours()+'', //小时
"%M" : this.getMinutes()+'', //分
"%S" : this.getSeconds()+'', //秒
//"q+" : Math.floor((this.getMonth()+3)/3), //季度
};
// 年份 2015
if(/(%Y)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"")); // 两位年份 15
if(/(%y)/.test(fmt))
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(2)); //getTime返回的是以毫秒为单位的,转为秒
if(/(%s)/.test(fmt))
//fmt=fmt.replace(RegExp.$1, this.getTime()/1000);
fmt=fmt.replace(RegExp.$1, (this.getTime()+'').slice(0, 10)); for(var k in o)
if(new RegExp("("+ k +")").test(fmt)){
fmt = fmt.replace(RegExp.$1, (o[k].length == 2 ? o[k] : '0' + o[k]));
}
return fmt;
} > d = new Date();
< Mon Jan 19 2015 16:54:46 GMT+0800 (中国标准时间) > d.format('%Y-%m-%d %H:%M:%S')
< "2015-01-19 16:54:46" > d.format('%s')
< "1421657686"
如果要用到正式环境,可以把上面的函数,放到一个js文件,然后在html文件中引用
javascript 的Date 格式化, 模仿shell中date命令的格式的更多相关文章
- (转)shell中test命令方法详解
test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...
- shell中date使用总结-基于自动定期备份mysql实践
------------------------时间的格式 date [OPTION]... [+FORMAT] echo `date 空格 +'时间格式串'` 调用date必须加符号反引号``,表示 ...
- Date, TimeZone, MongoDB, java中date的时区问题
打印new Date(),Fri Aug 12 13:37:51 CST 2016. 显示Asia/Shanghai的时区,但是date toString 的时区简写却是CST.更坑爹的是,Googl ...
- Oracle数据库date类型与Java中Date的联系与转化
以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助.new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前 ...
- shell中wait命令详解
wait命令介绍 wait [作业指示或进程号] 1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态.如果没有制定参数,则等待所有子进程的退出,其退出状态为0. 2.如果是s ...
- shell中对于命令的搜寻顺序
当你在shell命令行输入一条命令时,shell的搜寻顺序是如何的呢?当你的脚本名字和shell中的函数名字重名,shell是如何决定运行哪一个的? 在shell中,shell对于命令的搜寻优先级为: ...
- [转]shell中 source命令即点空格后面再跟可执行文件的说明
这里记录的是在一个shell脚本里面使用. ./file.sh 和./file.sh 的区别,本文参考了http://www.lslnet.com/linux/dosc1/39/linux-28353 ...
- shell 中test命令
test可用于测试表达式,支持测试的范围包括:字符串比较,算术比较,文件存在性.属性.类型等判断.例如,判断文件是否为空.文件是否存在.是否是目录.变量是否大于5.字符串是否等于"longs ...
- 书写优雅的shell脚本(六)- shell中的命令组合(&&、||、())
shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? == 1 时,表示执行失败. 有时候,下一条命令依赖前 ...
随机推荐
- 解决Centos 7 dhcp服务器-no subnet declaration for start (no IPV4 addresses.)
上面的配置是hyper-v 安装的 centos 7.0 安装dhcp 服务器的方法是 yum install dhcpd 在安装和配置好后,运行的时候出现错误 错误提示如下: no subnet d ...
- 搬寝室 hdu
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
- Quartz2D裁剪圆形头像
// 0. 载入原有图片 UIImage *image = [UIImage imageNamed:icon]; // 1.创建图片上下文 CGFloat margin = border; CGSiz ...
- 返璞归真 asp.net mvc (8) - asp.net mvc 3.0 新特性之 Model
原文:返璞归真 asp.net mvc (8) - asp.net mvc 3.0 新特性之 Model [索引页][源码下载] 返璞归真 asp.net mvc (8) - asp.net mvc ...
- Stack-based buffer overflow in acdb audio driver (CVE-2013-2597)
/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰 邮箱: minzhenfei@163.com */ 1. 漏洞描写叙述 音频驱动acdb提供了一个ioctl的系统接口让应用层调用, ...
- [LeetCode119]Pascal's Triangle II
题目: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [ ...
- 经FreeMarkerclasspath加载方式生成静态页面
package htmlskin; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundExc ...
- JListDemo
Tips: (1)JList不能自动滚动,要想为列表框加上滚动条,必须将JList插入到一个JScrollPane中,然后将JScollPane而不是JList,插入到外围JPanel上 (2)Lis ...
- POJ1458 Common Subsequence 【最长公共子序列】
Common Subsequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37614 Accepted: 15 ...
- What is Observer and Observable and when we used these?
转会:http://stackoverflow.com/questions/13744450/interview-when-do-we-use-observer-and-observable