相关疑难解决方法(0)

正确确定日期字符串是否为该格式的有效日期

我从API接收日期字符串,格式为yyyy-mm-dd.

我目前正在使用正则表达式验证字符串格式,这可以正常工作,但我可以看到一些情况,根据字符串,它可能是一个正确的格式,但实际上是一个无效的日期.即2013-13-01,例如.

有没有更好的方法在PHP中获取字符串,2013-13-01并告诉它是否是格式的有效日期yyyy-mm-dd

php datetime date

170
推荐指数
11
解决办法
24万
查看次数

用于检查字符串是否为日期的函数

我正在尝试编写一个函数来确定字符串是否是使用PHP的日期/时间.基本上有效的日期/时间如下:

 2012-06-14 01:46:28
Run Code Online (Sandbox Code Playgroud)

显然虽然它的完全动态任何值都可以改变,但它应该总是以形式出现XXXX-XX-XX XX:XX:XX,如何编写正则表达式来检查这个模式,如果匹配则返回true.

php regex validation datetime date

54
推荐指数
6
解决办法
9万
查看次数

php日期验证

我试图建立一个PHP日期验证(MM/DD/YYYY),但我遇到了问题.这是我得到的样本:

$date_regex = '%\A(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d\z%'; 

$test_date = '03/22/2010'; 
if (preg_match($date_regex, $test_date,$_POST['birthday']) ==true) {
    $errors[] = 'user name most have no spaces';`
Run Code Online (Sandbox Code Playgroud)

php validation date

47
推荐指数
4
解决办法
9万
查看次数

使用PHP的DateTime类验证有效日期

以下是我之前验证日期的方式.我也有自己的函数来转换日期格式,但是,现在使用PHP的DateTime类,所以不再需要它们.我应该如何使用DataTime最好地验证有效日期?还请让我知道您是否认为我应该首先使用DataTime.谢谢

PS.我使用面向对象的风格,而不是程序风格.

static public function verifyDate($date)
{
  //Given m/d/Y and returns date if valid, else NULL.
  $d=explode('/',$date);
  return ((isset($d[0])&&isset($d[1])&&isset($d[2]))?(checkdate($d[0],$d[1],$d[2])?$date:NULL):NULL);
}
Run Code Online (Sandbox Code Playgroud)

php datetime

17
推荐指数
4
解决办法
5万
查看次数

验证php中的日期格式

我正在尝试使用PHP验证日期.

我希望以下格式有效:

d/m/yy
d/m/yyyy
dd/m/yy
dd/m/yyyy
d/mm/yy
d/mm/yyyy
dd/mm/yy
dd/mm/yyyy
Run Code Online (Sandbox Code Playgroud)

我尝试过很多正则表达式和checkdate()函数的不同变体.目前我有这样的事情:

function _date_is_valid($str)
{
     if(strlen($str) == 0)
         return TRUE;
     if(substr_count($str,'/') == 2)
     {
         if (preg_match("/^((((31\/(0?[13578]|1[02]))|((29|30)\/(0?[1,3-9]|1[0-2])))\/(1[6-9]|[2-9]\d)?\d{2})|(29\/0?2\/(((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))|(0?[1-9]|1\d|2[0-8])\/((0?[1-9])|(1[0-2]))\/((1[6-9]|[2-9]\d)?\d{2}))/", $str))
         {
             $datearray = explode('/',$str);
             if($datearray[2] > 2030)
                 return FALSE;
             return checkdate($datearray[1], $datearray[0], $datearray[2]);
         } 
         else 
         {
             return FALSE;
         }
     }
     return FALSE;
}
Run Code Online (Sandbox Code Playgroud)

然而,这验证了11/11/200和11/11/200的日期#

如何验证日期以匹配所需的格式?

编辑:我可以检查datearray [2]在10到30之间以及2010年和2030年之间.但有没有办法使用正则表达式进行检查?

Edit1:在strlen上返回TRUE($ str)== 0是因为我希望用户能够在不知道事件何时发生的情况下添加事件,以便其他人可以限定日程安排并将事件分配到特定日期以后


仅供记录.我最终做了:

function _date_is_valid($str)
{
    if(strlen($str) == 0) //To accept entries without a date
        return TRUE;
    if(substr_count($str,'/') == 2)
    {
        list($d,$m,$y) = explode('/',$str);
        if(($y >= …
Run Code Online (Sandbox Code Playgroud)

php regex validation date

15
推荐指数
2
解决办法
2万
查看次数

Codeigniter - 日期格式 - 表单验证

我使用PHP.我正在使用以下表格,

<?php
    echo form_open('/register/create_new', $form_params);
?>

DOB: <input type="text" id="dob" name="reg[dob]">
     <input type="submit" value="Create Account" />
</form>
Run Code Online (Sandbox Code Playgroud)

在这里,#dobdd-mm-yyyy格式.

我的验证码是,

array(
  'field' => 'reg[dob]',
  'label' => 'DOB',
  'rules' => 'required'
)
Run Code Online (Sandbox Code Playgroud)

如何设置rules正确的日期验证?

php codeigniter codeigniter-form-helper

12
推荐指数
3
解决办法
5万
查看次数

在PHP中快速检查值是否为MySQL日期时间格式?

有没有人知道是否有内置或快速功能来检查字符串是否是MySQL日期时间格式?这是一个例子:

2038-01-19 03:14:07
Run Code Online (Sandbox Code Playgroud)

http://dev.mysql.com/doc/refman/5.0/en/datetime.html

php string

11
推荐指数
2
解决办法
4850
查看次数

如何用PHP验证日期

如果按照以下格式通过表单提交日期,$month=2, $day=31, $year= 2010.如果有效日期,如何使用PHP日期函数进行验证?谢谢.

php

6
推荐指数
1
解决办法
2万
查看次数

如何检查变量类型是否为DateTime

我怎样才能检查变量是否是php上的日期时间类型?我试过这个,但似乎不起作用.

public function setRegistrationDate ($registrationDate) {

   if (!is_date($registrationDate, "dd/mm/yyyy hh:mm:ss")) {
       trigger_error('registrationDate != DateTime', E_USER_WARNING);
       return;
   }

   $this->_registrationDate = $registrationDate;
}
Run Code Online (Sandbox Code Playgroud)

php datetime

6
推荐指数
3
解决办法
2万
查看次数

PHP DateTime CreateFromFormat问题

function validateDate($date, $format = 'm-Y') {
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}


validateDate('09-2017', 'm-Y');
Run Code Online (Sandbox Code Playgroud)

函数是从这个答案php.net复制而来的

我很困惑为什么这会在前几个月返回true时返回false.有任何想法吗?

php datetime date

4
推荐指数
1
解决办法
167
查看次数