2011-11-12 11 views
3

PHPで日付タイムスタンプが正しいかどうかをチェックする方法はありますか?PHPの日時スタンプが正しいことを確認してください。

私は現在、MySQLでyyyy-mm-dd hh:mm:ssを使用しており、ユーザーが正しい形式に一致する形式で日付/時刻スタンプを提供することを保証したいと考えています。

+0

あなたは 'hh:mm:ss'に時刻書式を挿入したいと思っていますか?何人いるのだろう? – Mob

+1

[これはあなたを助けることができます] [ [1]:http://stackoverflow.com/questions/141315/php-check-for-a-valid-date-web-date-conversions –

+1

In Stackoverflowあなたはこれの多くの解決策を見つけることができます。 [この質問をしてみ] [1] [1]:http://stackoverflow.com/questions/141315/php-check-for-a-valid-date-weird-date -conversions –

答えて

0

ですmktime()にあなたのタイムスタンプの部品のすべてに合格し、虚偽または-1が返された場合(PHPのバージョンによって異なります)することができます指定された文字列を解析し、入力した日付と同じ日付であることを確認してください。

$dt = DateTime::createFromFormat('Y-m-d H:i:s', '2011-01-32 12:00:00'); 
echo $dt->format('Y-m-d H:i:s'); 
// outputs 2011-02-01 12:00:00 

HTH。

5

[誰かが(bugfree)良い、作業checkdate()の例が付属してまで]私はこの機能を使用しています:

<?php 
function validateMysqlDate($date){ 
    if (preg_match("/^(\d{4})-(\d{2})-(\d{2}) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $date, $matches)) { 
     if (checkdate($matches[2], $matches[3], $matches[1])) { 
      return true; 
     } 
    } 
    return false; 
} 

// check it: 
    $a = validateMysqlDate('2012-12-09 09:04:00'); 
    $b = validateMysqlDate('20122-12-09 09:04:00'); 
    $c = validateMysqlDate('2012-12_09 09:04:00'); 
    $d = validateMysqlDate(''); 
    var_dump($a); 
    var_dump($b); 
    var_dump($c); 
    var_dump($d); 
?> 

とところで:それはないですがcheckdate()は$ Bのためにtrueを返します有効なmysqlの日時