Javasript中Date日期常用用法(正则、比较)
Date 对象用于处理日期和时间。
创建 Date 对象的语法:
代码如下 | 复制代码 |
var myDate=new Date() |
Date 对象会自动把当前日期和时间保存为其初始值。
参数形式有以下5种:
代码如下 | 复制代码 |
new Date("month dd,yyyy hh:mm:ss"); |
注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:
month:用英文表示月份名称,从January到December
mth:用整数表示月份,从(1月)到11(12月)
dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
如:
代码如下 | 复制代码 |
new Date("January 12,2006 22:19:35"); new Date("January 12,2006"); new Date(2006,0,12,22,19,35); new Date(2006,0,12); new Date(1137075575000); |
下面整理了一些日期正则达式
简单的正则 如 : d{4}-d{2}-d{2}
但是实际情况却不是那么简单,,要考虑,有效性和闰年等问题…..
对于日期的有效范围,不同的应用场景会有所不同。MSDN中定义的DateTime对象的有效范围是:0001-01-01 00:00:00到9999-12-31 23:59:59。
UNIX时间戳的0按照ISO 8601规范为 :1970-01-01T00:00:00Z。
先考虑与年份无关的前三条规则,年份可统一写作
(?!0000)[0-9]{4}
下面仅考虑月和日的正则
1. 包括平年在内的所有年份的月份都包含1-28日
代码如下 | 复制代码 |
(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8]) |
2. 包括平年在内的所有年份除2月外都包含29和30日
代码如下 | 复制代码 |
(0[13-9]|1[0-2])-(29|30) |
3. 包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日
代码如下 | 复制代码 |
(0[13578]|1[02])-31) |
合起来就是除闰年的2月29日外的其它所有日期
代码如下 | 复制代码 |
(?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31) |
接下来考虑闰年的实现 http://www.111cn.net/wy/js-ajax/55117.htm
1 : 四年一闰
代码如下 | 复制代码 |
([0-9]{2}(0[48]|[2468][048]|[13579][26]) |
2 : 百年不闰,四百年再闰
代码如下 | 复制代码 |
(0[48]|[2468][048]|[13579][26])00 |
3 : 合起来就是所有闰年的2月29日
代码如下 | 复制代码 |
([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29) |
四条规则都已实现,且互相间没有影响,合起来就是所有符合DateTime范围的日期的正则
代码如下 | 复制代码 |
^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$ |
考虑到这个正则表达式仅仅是用作验证,所以捕获组没有意义,只会占用资源,影响匹配效率,所以可以使用非捕获组来进行优化。
代码如下 | 复制代码 |
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$ |
Date函数比较日期大小,这里就要用于正则表达式了
代码如下 | 复制代码 |
//js 正则验证日期格式,使用Date函数比较日期大小 |
最后附一些关于日期date函数返回值函数
Date() 返回当日的日期和时间。
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。
getYear() 请使用 getFullYear() 方法代替。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。
setYear() 请使用 setFullYear() 方法代替。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
toSource() 返回该对象的源代码。
toString() 把 Date 对象转换为字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toGMTString() 请使用 toUTCString() 方法代替。 1 3
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
UTC() 根据世界时返回 1997 年 1 月 1 日 到指定日期的毫秒数。
valueOf() 返回 Date 对象的原始值。
var objDate=new Date([arguments list]);
Javasript中Date日期常用用法(正则、比较)相关推荐
- php中年月日用什么参数,PHP中date()日期函数参数整理
PHP中date()日期函数参数整理 发布于 2014-11-19 13:34:06 | 105 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...
- php中date里面的参数,PHP中date()日期函数有关参数整理
PHP中date()日期函数有关参数整理 更新时间:2011年07月19日 22:47:41 作者: PHP中date()日期函数有关参数整理,需要的朋友可以参考下. 在页面的最前页加上 date ...
- Java中Date各种相关用法
Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD: Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...
- java中Date日期类型的大小比较
java中Date日期类型的大小比较 方法一: java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小 String beginTim ...
- java中M格式_Java中Date日期字符串格式的各种转换
编程语言 Java中Date日期字符串格式的各种转换 字号+ 作者:小虾米 2017-04-21 08:51 以下程序源码都是从网络上整理之后,才发到本网站的,新手请收藏啊! public class ...
- java中struts2日期_Struts2中Date日期转换的问题
今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforCan ...
- C++中cin的常用用法
code: // File name: Cin_Usage // Last modified Date: 2021年10月13日21点26分 // Last Version: V1.0 // Desc ...
- linux中命令date,Linux 中date命令的用法
关于Linux内置命令date的用法,这里主要说一下,它在shell脚本中如何做日期计算和转换的. 格式化输出日期 详细的格式化符号可以用man date找到,这里以年月日来表示 获得当前的日期: # ...
- Js中Date日期的使用(加一天,加一个月,获取0时0分0秒,23时59分59秒等)
代码示例如下:(以当前日期new Date()为例.也可以将例中new Date()换成任意Date对象) 1.获取今天的0时0分0秒(常用于开始日期的获取) var startDate= new D ...
- Js中Date日期输出不同结果(格式)(加一天,加一个月,获取0时0分0秒,23时59分59秒等)
代码示例如下:(以当前日期new Date()为例.也可以将例中new Date()换成任意Date对象) 1.获取今天的0时0分0秒(常用于开始日期的获取) var startDate= new D ...
最新文章
- 【C 语言】数组 ( 数组类型表达 | 定义数组类型 )
- Linux信号量之用户态信号量(Posix信号量->无名信号量)
- 张志华教授《机器学习导论》和《统计机器学习》课程讲义
- 数据湖探索DLI新功能:基于openLooKeng的交互式分析
- [导入]存储过程-分隔符号-多条件查询
- 第七节:SpringBoot高级属性配置二
- 光电整纬机(日本世联电子株式会社)
- Android Fragment + ViewPater + Fragment嵌套Fragment实战
- presto读取oracle,Presto数据接入方式
- Improving Opencv 7: The Core Functionality : Discrete Fourier Transform
- 环境类sci期刊排名一区_这本国产SCI论文期刊今年首破5分,明年或超6分
- 推荐系统之协同过滤算法
- Hadoop原理和特性
- R语言学习笔记四:秩和检验
- 洛谷每日三题之第六天
- 关于解码 decode 的错误
- 单月涨粉30w+,他们掌握引流法宝,小红书1月创作趋势是什么?
- Word如何自动更新域
- python生成曼德勃罗分形图形
- Unity资源加载发布到移动端iphone/ipad
热门文章
- matlab 常用函数或符号用法总结
- 五子棋c语言代码光标,c语言写的鼠标操作的五子棋游戏,欢迎观赏!
- mysql 循环_MySQL存储过程中的3种循环【转载】
- spring cloud构建互联网分布式微服务云平台-服务提供与调用
- 设置UITextField键盘上return key不可点击
- Google Earth 6 Beta版发布 (供下载地址)
- 解决IE7中移动文件夹无法收藏问题
- 【SpringBoot_ANNOTATIONS】组件注册 03 FilterType
- Annotation-specified bean name ‘mapper‘ for bean class [com.thoughtworks.xstream.mapper.Mapper] conf
- java基础回顾---static关键字