javascript的日期函数

在js中,日期对象就是Date,首先,我们需要创建一个日期对象,才能对日期对象中的函数进行操作:
javascript的日期函数_第1张图片
打印出来的结果:
这里写图片描述
注意,这里的格式是格林式日期
Tue Jul 18 2017 10:33:05 GMT+0800
Tue代表星期几,Jul代表月份,18代表几号,2017是年份,10:33:05是时间,GMT+0800代表是描述:东八区。
这样的格式不是我们国家所展示的方式,于是有了一个toLocaleString()的一个函数,这个函数就是根据本地时间格式转换成字符串,但是也只能转换成2017/7/18 上午10:33:05这样的一种格式,我们并不能人为进行格式的改变。
接下来,我们就开始一点点的解剖这个时间:
年:
javascript的日期函数_第2张图片
得到的结果如下:
这里写图片描述
注意,这里的117代表的是短年,这个基本可以忽视不管,我们一般用到的就是getFullYear()。

月:
注意,国外的月份是从0月开始的。而不是1月。所以国外的月份是0-11月:
javascript的日期函数_第3张图片
效果如下:
这里写图片描述
拿到的一个6,但是现在是7月份,所以,当获取到js里Date对象的月份后,我们通常需要+1。
javascript的日期函数_第4张图片
这样才能真正获取到我们所需要的月份。

日:
javascript的日期函数_第5张图片
效果如下:
这里写图片描述
拿到18号,这个很简单,不多做阐述。

时分秒:
javascript的日期函数_第6张图片
效果如下:
这里写图片描述
但是我们发现有一点瑕疵,因为如果时分秒是个位数的话,我们一般会写成09:05:08 这样的格式,所以我们要运用到之前的三元运算法稍微做一些修改:
javascript的日期函数_第7张图片
这样,效果就出来了:
这里写图片描述
注意,这里的getHours()是24小时制的。
知道了这些,我们就可以进行自定义的格式调整了:
javascript的日期函数_第8张图片
效果如下:
这里写图片描述
那么,我们也可以对这个代码进行一个简单的封装:
首先,我们定义一个函数,然后定义出所有的需要替换规则字符的正则表达式:
javascript的日期函数_第9张图片
接下来,我们将一个具体的时间的所有部位(年,月,日,时,分,秒)定义出来,注意,这里需要考虑到个位数前面需要加0的需求:
javascript的日期函数_第10张图片
注意,这里的hour我用了_24hour,意思就是这是一个24小时制的时间,那么同样的需要定义一个12小时制的时间:
javascript的日期函数_第11张图片
那么,这里的12小时制,就是判断如何当hour > 中午的12点以后,我们将hour减去12,所得到的就是12小时制。同时,在时间前面标注是am还是pm。
最后,我们进行替换:
javascript的日期函数_第12张图片
那么,我们调用一下进行测试:
javascript的日期函数_第13张图片
最后得到的结果如下:
这里写图片描述
虽然这段代码BUG还是很多,但是基于我们目前学的知识,这样的一个功能已经差不多完成了。有心的同学可以完善一下这段代码,将代码实现的更为完美。

你可能感兴趣的:(javascript的日期函数)