Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Kiểm tra tem datetime của PHP có đúng không?

[cho đến khi ai đó đi kèm với ví dụ tốt (bugfree), checkdate () đang hoạt động] Tôi đang sử dụng chức năng này:

<?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 ); 
?>

và btw:checkdate () sẽ trả về true cho $ b mặc dù nó không phải là datetime của mysql hợp lệ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể truy cập dữ liệu SQL bên ngoài vòng lặp while của tôi

  2. Không thể cập nhật dữ liệu từ cơ sở dữ liệu MySQL

  3. MySQL - Kích hoạt để cập nhật Cột trong bảng khác sau khi chèn vào nơi nó thỏa mãn các giá trị khác

  4. Chế độ xem cụ thể hóa với MySQL

  5. Trợ giúp thiết kế truy vấn SQL nâng cao (Bản sao trên hai bảng, nhiều trường, có thể loại trừ dựa trên một trường)