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

ZKeitherZ

The Warrior of Light
Lão Làng GVN
Tham gia ngày
28/7/05
Bài viết
2,253
Reaction score
113
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
 
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
}
 
cám ơn bạn rất nhiều
code của bạn chạy rất ok
 
Back
Top