javascript 通过Date对象验证日期合法性

通常来说,javascript验证日期的有效性可以通过正则判断

但正则表达式无法精准验证日期的有效性,你无法通过正则表达式判断出1900-02-29是非法日期而2000-02-29是合法日期,而且正则表达式匹配起来比较繁琐。

要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/30/31),你可以用一个数组表示每月的天数,如daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],但你会发现daysInMonth[1]这个值可能是28或29,你又要写一个判断闰年的函数来解决这个问题......

这至少要花费20行以上的代码来完成这件事,而通过javascript中的Date对象,我们只需要1行代码即可完成上述功能。

function check(date){

return (new Date(date).getDate()==date.substring(date.length-2));

}

date为一个待检查的类日期字符串(如2013-01-01、2013/01/01、2013/01/32、2013/02/29),不论这个字符串是否正确

通过新建的Date对象(new Date(date)),可以识别出该日期是否正确,如果不正确则返回Invalid Date

但这样会有一个bug,当日期的值在1-31之间,new Date总返回一个新的对象,不论该月份是否存在这个日期(如2013-02-30将返回日期对象Sat Mar 02 2013 08:00:00 GMT+0800 (中国标准时间)),返回结果是下个月的日期而不报错

所以要用getDate()方法获取日期(new Date(‘2013-02-30‘)对象的getDate()方法将返回2)

date.substring(date.length-2)会获取到字符串最后两位也就是日期的部分,这与Date对象的日期部分做比较,如果相等则说明日期有效,否则为无效日期

如果日期无效则‘==‘左边值为NaN,右边无论是什么(‘‘、null、undefined、NaN等)结果都为false

from:http://blog.sina.com.cn/s/blog_a9d3c71c0101f8sn.html

javascript 通过Date对象验证日期合法性,布布扣,bubuko.com

时间: 2024-10-18 09:17:11

javascript 通过Date对象验证日期合法性的相关文章

json里的日期字符串 怎么 转换成 javascript 的 Date 对象?

“/Date(1232035200000)/” 怎么转换成  javascript 的 Date 对象 做法:new Date(+/\d+/.exec(value)[1]); value就是json字符串,字符串内容是 /Date(ticks)/,其中 ticks 表示从 epoch (UTC) 开始的毫秒数.因此,UTC 时间 1989 年 11 月 29 日 4:55:30 AM 将编码为“/Date(628318530718)/”.

javascript中Date对象与字符串之间的转换

使用js中new Date()得到的Data对象转换为字符串之后往往未能符合我们想要的期望,今天我就“Date对象与字符串之间的转换”这个主题做一个简易的分析: 常见的转换方式有: 一.toString() —— 把 Date 对象转换为字符串 1 var str = new Date().toString(); 2 console.log(str); 3 4 //output: 5 //Mon Oct 12 2015 11:13:22 GMT+0800 二.toTimeString() ——

Javascript中Date对象的格式化

很多语言中都带有日期的格式化函数,而Javascript中却没有提供类似的方法.之前从某位前人的帖子中发现了下面的代码,感觉非常简洁,存留备用. /** * 时间对象的格式化; */ Date.prototype.format = function (format) { /* 示例 var d=new Date(); d.format("YYYY-MM-dd hh:mm:ss"); 结果:"2014-01-02 12:34:56" */ var o = { &quo

javascript中Date对象的应用——简易日历的实现

× 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="con

学习笔记:javascript内置对象:日期对象

2.日期对象的常用函数 2.日期对象的常用函数   Date 对象方法 方法 描述 Date() 返回当日的日期和时间. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31). getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6). getMonth() 从 Date 对象返回月份 (0 ~ 11). getFullYear() 从 Date 对象以四位数字返回年份. getYear() 请使用 getFullYear() 方法代替. getHours(

javascript中Date对象的应用

前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="conYear" class="con-in&q

JavaScript的Date对象练习

一.将一个,符合阅读习惯的日期格式,直接显示在网页上,不用弹出框的形式 思路: 1.获取当前日期时间对象 2.将年月日时分秒,分别获取出来,拼接成字符串的样式 function getDateDemo(){ var date = new Date(); var year = date.getFullYear(); var month = date.getMonth()+1; var day = date.getDate(); if(month<10) month="0"+mont

JavaScript的Date对象

一.Date对象概述 1.javaScript 提供了 Date 类型来处理时间和日期.Date 对象内置一系列获取和设置日期时间信息的方法. 2.javaScript 中的 Date 类型是在早期 Java 中 java.util.Date 类基础上构建的. 3.Date类型使用 UTC (Coordinated Universal Time,国际协调时间[又称世界统时间]) 1970 年 1 月1 日午夜(零时)开始经过的毫秒来保存日期. 4.在使用这种数据存储格式的条件下,Date 类型保

JavaScript&amp;jQuery.Date对象和Time对象

Date对象和Time对象 Date对象用于操作日期 Time对象用于操作时间 Date对象在使用时前需要先实例化,采用构造函数实例化. var today=new Date(); // 返回年份 document.write(today.getFullYear()); document.write('<br>'); // 返回月份,从0到11,0表示1月,11表示12月 document.write(today.getMonth()); document.write('<br>'