php判断日期格式是否合法

实现方法

function isDate( $dateString ) {
    return strtotime( date(‘Y-m-d‘, strtotime($dateString)) ) === strtotime( $dateString );
}

echo $this->isDate(‘2014-11-19‘) ? ‘true‘ : ‘false‘;
echo ‘</br>‘;
echo $this->isDate(‘2014-11-32‘)? ‘true‘ : ‘false‘;
echo ‘</br>‘;
echo $this->isDate(‘2014-a-b‘)? ‘true‘ : ‘false‘;
echo ‘</br>‘;
echo $this->isDate(‘2014-1-1‘)? ‘true‘ : ‘false‘;
echo ‘</br>‘;
echo $this->isDate(‘2014-01-01‘)? ‘true‘ : ‘false‘;

/*
结果
true
false
false
true
true
*/    

date(‘Y-m-d‘, strtotime($dateString))  这段代码是将输入的时间字符串转换成unix时间戳(自1970-1-1 0:0:0起),然后再转回日期字符串。 如果输入的日期字符串格式不正确, 那么转换前的值与转换后的值是不一致的, 也就是说 date(‘Y-m-d‘, strtotime($dateString)) == $dateString 这句代码的结果将false。那为什么还要将上面的代码写成 strtotime( date(‘Y-m-d‘, strtotime($dateString)) ) === strtotime( $dateString ) 这样呢?因为将代码写成date(‘Y-m-d‘, strtotime($dateString)) == $dateString这样, 那么如果$dateString的值为2014-1-1这种格式( 一个合法的时间字符串),返回的结果也将为false, 因为date(‘Y-m-d‘,strtotime(‘2014-1-1‘))返回的结果为2014-01-01这个样子, 如果月份和日期为个位数, 会在前面自动补上0,从字符串比较的层面看2014-1-1很明显不等于2014-01-01, 所以需要在外层加上strtotime, 将两边的日期都转换成unix时间戳, 再进行比较。

原文地址:http://chhblog.com/article/294.html

时间: 2024-07-29 22:26:30

php判断日期格式是否合法的相关文章

Linux C判断日期格式是否合法

Title:Linux C判断日期格式是否合法 --2013-10-11 11:54 #include <string.h> // strlen() , strncpy() #include <ctype.h> // isdigit() #include <stdlib.h> // atoi() #include <stdio.h> /*有效格式 2013-01-01 01:01:01 2013/11/11 11:11:11 */ int main() {

判断日期格式是否正确

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

.net 判断日期格式yyyy-MM-dd hh:MM:ss的正则表达式

加上引用: using System.Text.RegularExpressions; /// <summary> /// 检查字符串是否是日期格式        /// </summary>        /// <param name="s">2011-5-8 8:08:05</param>        /// <returns></returns>        public static string c

PHP 判断日期格式

function is_date($date){ $is_date=strtotime($date)?strtotime($date):false; if($is_date===false&&$date!=""){ exit('日期格式非法'); } } is_date($fromdate);

js常规日期格式处理、月历渲染、倒计时函数

日期格式处理在前端的日常任务中非常常见,但是为此引入monent.js这样的类库又会显得有点臃肿,毕竟我们一个特定的项目中,并不需要monent.js那么全的涵盖范围.另外,如果现在公司让你自己手写一个日历组件(月历.周历),日历组件中需要耦合我们的其他业务需求,如果有一个任务列表,当11月22号的待进行任务,我需要在日历上有一个绿色圆点,表示当天有待办事项.下面介绍一些常规的函数,希望对大家有用. 月历效果图 月历.png 函数目录 getFormatDateStr 获得指定日期格式的字符串:

验证日期格式的方法

判断日期格式的验证: 除IE浏览器外,可使用Date.parse()方法,该方法传入某个日期字符串,返回从1970-1-1 00:00:00到该日期对象的毫秒数,若无法识别则返回NaN IE浏览器不支持Date.parse()方法,其解决思路如下: 将字符串手动解析为数组: 使用Date的实例化,即new Date(a,b,c),返回date对象,若无法识别,则返回Invalid Date的对象: 调用对象的toString方法,返回结果值与'Invalid Date'相等,则为不合格日期格式,

Java判断字符串是否符合yyyyMMdd日期格式

Java判断字符串是否符合yyyyMMdd日期格式 代码: /** * 判断参数的格式是否为"yyyyMMdd"格式的合法日期字符串 * */ public static boolean isValidDate(String str) { try { if (str != null && !str.equals("")) { if (str.length() == 8) { // 闰年标志 boolean isLeapYear = false; St

php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)

/** * 表单校验函数库 */ /** * 判断email格式是否正确 * @param $email */ function is_email($email) { return strlen($email) > 6 && preg_match("/^[\w\-\.][email protected][\w\-\.]+(\.\w+)+$/", $email); } //判断http 地址是否合法 function check_url($url) { return

OJ刷题之《判断日期(年月日)是否合法》

题目描述 编写函数isValid_date,函数声明如下: int isValid_date(int year,int month,int day); //判断日期(年月日)是否合法的函数声明,如果日期合法返回1,如果不合法返回0 在以下程序的基础上,添加isValid_date函数的定义,使程序能够正确执行. 提交时,只需要提交isValid_date函数的定义代码即可. #include <iostream> using namespace std; int isValid_date(in