hỏi về cách kiểm tra dữ liệu kiểu dd/mm/yyyy?

Thảo luận trong 'Lập Trình Web' bắt đầu bởi ZKeitherZ, 21/3/10.

  1. ZKeitherZ

    ZKeitherZ The Warrior of Light Lão Làng GVN

    Tham gia ngày:
    28/7/05
    Bài viết:
    2,247
    Nơi ở:
    Blizzard
    mình đang lập trình web = php và html và js

    mình muốn viết code để kiểm tra người dùng nhập dd/mm/yyyy có đúng ko để insert vào mySQL

    chẳng hạn như khi người ta nhập 31/13/2010 thì báo sai

    hay 30/2/2010 thì báo sai

    mong mọi người chỉ giúp xin cám ơn
     
  2. JJH_SPM

    JJH_SPM Mr & Ms Pac-Man

    Tham gia ngày:
    16/8/06
    Bài viết:
    122
    Dùng regular expression:

    Code cho Javascript. Tùy chỉnh error nhé:

    <script>

    function check_valid_date(datevalue)
    {


    var pattern = new RegExp(/^[0-3][0-9]\/(0|1)[0-9]\/(19|20)[0-9][0-9]$/);

    if(datevalue.match(pattern))
    {
    var date_array =datevalue.split('/');
    var day = date_array[0];
    // Attention! Javascript consider months in the range 0 - 11
    var month = date_array[1] - 1;
    var year = date_array[2];
    source_date = new Date(year,month,day);
    if(year != source_date.getFullYear())
    {
    alert('Year is not valid!');
    return false;
    }

    if(month != source_date.getMonth())
    {
    alert('Month is not valid!');
    return false;
    }

    if(day != source_date.getDate())
    {
    alert('Day is not valid!');
    return false;
    }
    }
    else
    {
    alert('Date format is not valid!');
    return false;
    }
    return true;
    }




    </script>

    Thêm PHP, nếu user tắt Javascript:

    $date=$_POST[...]; // get variable

    if(!preg_match("/^[0-3]\d\/[0-1]\d\/(19|20)\d{2}$/",$date))
    {
    //error not in valid format
    }

    list($day,$month,$year)=explode("/",$date);

    if(!checkdate($month,$day,$year))
    {
    //not valid date
    }
     
  3. ZKeitherZ

    ZKeitherZ The Warrior of Light Lão Làng GVN

    Tham gia ngày:
    28/7/05
    Bài viết:
    2,247
    Nơi ở:
    Blizzard
    cám ơn bạn rất nhiều
    code của bạn chạy rất ok
     

Chia sẻ trang này