bi\u1ec3u th\u1ee9c ch\u00ednh quy (regex)<\/a> trong PHP (regex \u0111\u01b0\u1ee3c r\u1ea5t nhi\u1ec1u ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh h\u1ed7 tr\u1ee3, d\u00f9 kh\u00f4ng th\u1ed1ng nh\u1ea5t 100%, r\u1ea5t nhi\u1ec1u m\u00e3 l\u00e0 t\u01b0\u01a1ng t\u1ef1 nhau, ngh\u0129a l\u00e0 b\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng n\u00f3 trong nhi\u1ec1u ng\u00f4n ng\u1eef kh\u00e1c nhau m\u00e0 kh\u00f4ng ph\u1ea3i h\u1ecdc l\u1ea1i t\u1eeb \u0111\u1ea7u). \u0110\u00e2y l\u00e0 c\u00f4ng c\u1ee5 r\u1ea5t m\u1ea1nh \u0111\u1ec3 x\u1eed l\u00fd chu\u1ed7i, c\u00e1c b\u1ea1n n\u00e0o ch\u01b0a bi\u1ebft n\u00ean th\u1eed t\u00ecm hi\u1ec3u…<\/p>\n\n\n\nC\u0169ng \u0111\u1ec3 ph\u00f2ng xa, ch\u00fang ta ti\u1ebfn h\u00e0nh lo\u1ea1i b\u1ecf c\u00e1c k\u00fd t\u1ef1 kh\u00f4ng \u0111\u01b0\u1ee3c ph\u00e9p trong chu\u1ed7i ng\u00e0y th\u00e1ng, l\u1ed7i n\u00e0y c\u0169ng \u00edt g\u1eb7p, v\u00e0 tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n ch\u00fang ta ph\u1ea3i quan s\u00e1t tr\u01b0\u1edbc c\u00e1c d\u1eef li\u1ec7u \u0111\u1ec3 bi\u1ebft r\u1eb1ng l\u00e0m nh\u01b0 v\u1eady th\u00ec vi\u1ec7c lo\u1ea1i b\u1ecf c\u00f3 \u0111\u00fang hay kh\u00f4ng (ch\u1ee9 kh\u00f4ng ph\u1ea3i l\u00e0 chuy\u1ec3n m\u1ed9t ki\u1ec3u sai n\u00e0y sang m\u1ed9t ki\u1ec3u sai kh\u00e1c), gi\u1ea3 \u0111\u1ecbnh l\u00e0 \u0111\u01b0\u1ee3c ph\u00e9p th\u00ec m\u00e3 l\u1ec7nh s\u1ebd th\u1ebf n\u00e0y:<\/p>\n\n\n\n
$ktdu = array('~', '!', '@', '#','$', '%', '^', '&', '*', '(', ')', '_', '=', '+', '[', '{', ']', '}', '|', ':', ';', '\"', ',', '<', '>', '?', '+', '\\\\', '\\''); \/\/ k\u00fd t\u1ef1 d\u01b0 l\u1ed7i\n\n$nscu3 = str_replace($ktdu, \"\", $nscu2); \/\/ c\u00e2u l\u1ec7nh lo\u1ea1i b\u1ecf k\u00fd t\u1ef1 d\u01b0<\/code><\/pre>\n\n\n\nM\u00e3 ti\u1ebfp theo ch\u00fang ta s\u1ebd th\u1ed1ng nh\u1ea5t<\/strong> c\u00e1c k\u00fd t\u1ef1 ph\u00e2n c\u00e1ch ng\u00e0y th\u00e1ng n\u0103m v\u1ec1 c\u00f9ng m\u1ed9t ki\u1ec3u. C\u1ee5 th\u1ec3 t\u00f4i s\u1ebd chuy\u1ec3n c\u00e1c k\u00fd t\u1ef1 ph\u00e2n c\u00e1ch l\u00e0 d\u1ea5u g\u1ea1ch ngang -<\/code> v\u00e0 d\u1ea5u .<\/code> v\u1ec1 d\u1ea5u g\u1ea1ch xu\u00f4i \/<\/code><\/p>\n\n\n\n\u0110o\u1ea1n m\u00e3 c\u1ee5 th\u1ec3 nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n\n
\n$nscu4 = preg_replace('\/\\.\/', '\/', $nscu3); \/\/thay d\u1ea5u ch\u1ea5m\n$nscu5 = preg_replace('\/-\/', '\/', $nscu4); \/\/thay d\u1ea5u g\u1ea1ch ngang<\/code><\/pre>\n\n\n\nV\u00ec k\u1ebft h\u1ee3p c\u1ea3 hai d\u1ea5u kh\u00f4ng \u0111\u01b0\u1ee3c n\u00ean t\u00f4i t\u00e1ch ri\u00eang, b\u1ea1n ch\u00fa \u00fd d\u1ea5u ch\u1ea5m l\u00e0 m\u1ed9t k\u00fd t\u1ef1 \u0111\u1ea1i di\u1ec7n \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a trong regex n\u00ean \u0111\u1ec3 d\u00f9ng n\u00f3 nh\u01b0 m\u1ed9t k\u00fd hi\u1ec7u b\u00ecnh th\u01b0\u1eddng ch\u00fang ta c\u1ea7n th\u00eam d\u1ea5u g\u1ea1ch ng\u01b0\u1ee3c \\<\/code><\/p>\n\n\n\nPh\u1ea7n ti\u1ebfp theo ch\u00fang ta s\u1ebd d\u00f9ng Regex \u0111\u1ec3 thi\u1ebft l\u1eadp v\u00e0 l\u1ea5y m\u1eabu ng\u00e0y\/th\u00e1ng\/n\u0103m ti\u00eau chu\u1ea9n, \u1edf \u0111\u00e2y t\u00f4i s\u1ebd b\u1eaft ch\u1eb7t h\u01a1n th\u00f4ng th\u01b0\u1eddng, v\u00ec \u0111\u00e2y l\u00e0 n\u0103m sinh c\u1ee7a ng\u01b0\u1eddi trong kho\u1ea3ng th\u1eddi gian nhi\u1ec1u nh\u1ea5t l\u00e0 t\u1eeb \u0111\u1ea7u th\u1ebf k\u1ef7 19 cho \u0111\u1ebfn th\u1eddi \u0111i\u1ec3m hi\u1ec7n t\u1ea1i:<\/p>\n\n\n\n
$rea = '\/^(0?[1-9]|[12]\\d|3[01])[\\\/](0?[1-9]|[1][012])[\\\/](\\d{2}|19\\d{2}|20[012]\\d)$\/'; \/\/ n\u0103m ch\u1ec9 h\u1ee3p l\u1ec7 t\u1eeb 1900 \u0111\u1ebfn 2029\n\n$kq=preg_match($rea, $nscu3, $match); \/\/ ki\u1ec3m tra xem c\u00f3 kh\u1edbp v\u1edbi m\u1eabu chu\u1ea9n hay ch\u01b0a<\/code><\/pre>\n\n\n\nM\u1ea3ng $match<\/code> s\u1ebd l\u01b0u k\u1ebft qu\u1ea3 n\u1ebfu kh\u1edbp. Trong \u0111\u00f3:<\/p>\n\n\n\n$match[0]<\/code> l\u00e0 c\u1ea3 chu\u1ed7i ng\u00e0y th\u00e1ng n\u0103m;<\/li>$match[1]<\/code> l\u00e0 ng\u00e0y;<\/li>$match[2]<\/code> l\u00e0 th\u00e1ng;<\/li>$match[3]<\/code> l\u00e0 n\u0103m;<\/li>- N\u1ebfu kh\u1edbp th\u00ec gi\u00e1 tr\u1ecb
$kq<\/code> s\u1ebd b\u1eb1ng 1, c\u00f2n kh\u00f4ng n\u00f3 s\u1ebd b\u1eb1ng 0;<\/li><\/ul>\n\n\n\nGi\u1edd ch\u00fang ta s\u1ebd ki\u1ec3m tra nh\u1eefng th\u00e0nh ph\u1ea7n th\u00e1ng ho\u1eb7c ng\u00e0y n\u00e0o d\u01b0\u1edbi 10 m\u00e0 \u1edf d\u1ea1ng m\u1ed9t s\u1ed1 ta s\u1ebd th\u00eam 0<\/code> v\u00e0o \u0111\u1ec3 th\u00e0nh ki\u1ec3u nh\u01b0 05\/07\/2015<\/code><\/p>\n\n\n\nif($kq==1) {\n $mn=$match[1]; \/\/ l\u1ea5y th\u00f4ng tin ng\u00e0y\n $s_mn=(int)$mn; \/\/ chuy\u1ec3n n\u00f3 sang gi\u00e1 tr\u1ecb s\u1ed1\n if (mb_strlen($s_mn)==1) {$mn2=\"0\".$s_mn;} else {$mn2=$mn;} \n \n}<\/code><\/pre>\n\n\n\nH\u00e0m mb_strlen()<\/code> gi\u00fap ch\u00fang ta \u0111\u1ebfm s\u1ed1 k\u00fd t\u1ef1 trong chu\u1ed7i. Sau khi chuy\u1ec3n \u0111\u1ed5i sang d\u1ea1ng s\u1ed1, m\u00e0 s\u1ed1 l\u01b0\u1ee3ng k\u00fd t\u1ef1 ch\u1ec9 l\u00e0 1, ch\u00fang ta hi\u1ec3u r\u1eb1ng gi\u00e1 tr\u1ecb c\u1ee7a n\u00f3 ch\u1ec9 c\u00f3 th\u1ec3 l\u00e0 t\u1eeb 1 \u0111\u1ebfn 9. V\u00ec v\u1eady ch\u00fang ta s\u1ebd g\u1eafn s\u1ed1 0 \u0111\u1eb1ng tr\u01b0\u1edbc cho ph\u00f9 h\u1ee3p v\u1edbi chu\u1ea9n \u0111\u1ec1 ra ban \u0111\u1ea7u.<\/p>\n\n\n\nN\u1ebfu s\u1ed1 l\u01b0\u1ee3ng k\u00fd t\u1ef1 kh\u00e1c 1, t\u1ee9c l\u00e0 n\u00f3 c\u00f3 2 ch\u1eef s\u1ed1 (10,11, cho \u0111\u1ebfn 31). Tr\u01b0\u1eddng h\u1ee3p n\u00e0y ch\u00fang ta kh\u00f4ng ph\u1ea3i ch\u1ec9nh s\u1eeda g\u00ec, v\u00e0 g\u00e1n l\u1ea1i gi\u00e1 tr\u1ecb trung gian cho gi\u00e1 tr\u1ecb ban \u0111\u1ea7u (\u0111o\u1ea1n $mn2=$mn;<\/code>).<\/p>\n\n\n\nM\u00e3 chuy\u1ec3n \u0111\u1ed5i cho th\u00e1ng c\u0169ng t\u01b0\u01a1ng t\u1ef1.<\/p>\n\n\n\n
<\/span>N\u00e2ng cao ch\u1ee9c n\u0103ng c\u1ee7a h\u00e0m<\/span><\/h2>\n\n\n\nV\u1ec1 c\u01a1 b\u1ea3n ch\u00fang ta \u0111\u00e3 \u0111i \u0111\u01b0\u1ee3c n\u1eeda ch\u1eb7ng \u0111\u01b0\u1eddng, ch\u1ec9 c\u1ea7n x\u1eed l\u00fd d\u1eef li\u1ec7u n\u0103m t\u1eeb 2 s\u1ed1 th\u00e0nh 4 s\u1ed1 n\u1eefa l\u00e0 xong.<\/p>\n\n\n\n
\u1ede \u0111\u00e2y t\u00f4i mu\u1ed1n n\u00e2ng cao h\u00e0m chu\u1ea9n h\u00f3a ng\u00e0y th\u00e1ng n\u00e0y trong tr\u01b0\u1eddng h\u1ee3p t\u1ed5ng qu\u00e1t. T\u00f4i s\u1ebd b\u1ed5 sung th\u00eam t\u00ednh n\u0103ng \u0111\u1ec3 n\u00f3 x\u00e1c \u0111\u1ecbnh m\u1ed9t th\u1eddi \u0111i\u1ec3m n\u0103m sinh n\u00e0o \u0111\u00f3 c\u00f3 h\u1ee3p l\u1ec7 hay l\u00e0 kh\u00f4ng. \u0110\u1ec3 \u0111\u1ee1 ph\u1ee9c t\u1ea1p, bi\u1ebfn truy\u1ec1n v\u00e0o x\u00e1c th\u1ef1c d\u1eef li\u1ec7u ch\u1ec9 c\u1ea7n l\u00e0 n\u0103m, \u0111i\u1ec1u n\u00e0y c\u0169ng gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c ch\u00ednh x\u00e1c v\u1ea5n \u0111\u1ec1 trong r\u1ea5t nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p.<\/p>\n\n\n\n
H\u00e0m function<\/code> gi\u1edd s\u1ebd c\u00f3 c\u1ea5u tr\u00fac nh\u01b0 th\u1ebf n\u00e0y:<\/p>\n\n\n\nfunction chuan_hoa_ntn($nscu,$nann,$naln,$utn) {}<\/code><\/pre>\n\n\n\nTrong \u0111\u00f3 ngo\u00e0i bi\u1ebfn $nscu<\/code> \u0111\u1ea1i di\u1ec7n d\u1eef li\u1ec7u ng\u00e0y th\u00e1ng n\u0103m ch\u00fang ta c\u1ea7n x\u1eed l\u00fd th\u00ec gi\u1edd ch\u00fang ta c\u00f3 th\u00eam 3 bi\u1ebfn m\u1edbi:<\/p>\n\n\n\n- Bi\u1ebfn
$nann<\/code> \u0111\u1ec3 ch\u1ec9 n\u0103m h\u1ee3p l\u1ec7 nh\u1ecf nh\u1ea5t \u0111\u01b0\u1ee3c ph\u00e9p, gi\u00e1 tr\u1ecb chu\u1ea9n l\u00e0 m\u1ed9t s\u1ed1 g\u1ed3m 4 ch\u1eef s\u1ed1 kh\u00f4ng \u0111\u01b0\u1ee3c nh\u1ecf h\u01a1n 1900;<\/li>- Bi\u1ebfn
$naln<\/code> \u0111\u1ec3 ch\u1ec9 n\u0103m h\u1ee3p l\u1ec7 l\u1edbn nh\u1ea5t \u0111\u01b0\u1ee3c ph\u00e9p, gi\u00e1 tr\u1ecb chu\u1ea9n l\u00e0 m\u1ed9t s\u1ed1 c\u00f3 4 ch\u1eef s\u1ed1, l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng gi\u00e1 tr\u1ecb c\u1ee7a $nann<\/code>, nh\u01b0ng kh\u00f4ng \u0111\u01b0\u1ee3c l\u1edbn h\u01a1n n\u0103m hi\u1ec7n t\u1ea1i (2021 t\u1ea1i th\u1eddi \u0111i\u1ec3m t\u00f4i vi\u1ebft b\u00e0i n\u00e0y);<\/li>- Bi\u1ebfn
$utn<\/code> li\u00ean quan \u0111\u1ebfn c\u00e1ch chuy\u1ec3n d\u1eef li\u1ec7u t\u1eeb 2 s\u1ed1 sang b\u1ed1n s\u1ed1 s\u1ebd \u01b0u ti\u00ean ki\u1ec3u chuy\u1ec3n n\u00e0o h\u01a1n, n\u00f3 c\u0169ng r\u1ea5t quan tr\u1ecdng, v\u1ec1 sau khi \u0111i v\u00e0o m\u00e3 chi ti\u1ebft b\u1ea1n s\u1ebd hi\u1ec3u r\u00f5 h\u01a1n;<\/li><\/ul>\n\n\n\n\u1ede ph\u1ea7n m\u00e3 l\u1ea5y tham 3 tham s\u1ed1 \u0111\u1ea7u v\u00e0o \u1edf tr\u00ean kh\u00f4ng c\u00f3 g\u00ec qu\u00e1 \u0111\u1eb7c bi\u1ec7t, d\u00f9 n\u00f3 l\u00e0 m\u1ea5y v\u00f2ng IF tr\u00f4ng h\u01a1i l\u1eb1ng nh\u1eb1ng, m\u1ee5c \u0111\u00edch c\u1ed1t y\u1ebfu l\u00e0 \u0111\u1ec3 d\u1ef1 ph\u00f2ng ngay c\u1ea3 khi tham s\u1ed1 \u0111\u1ea7u v\u00e0o nh\u1eadp sai v\u00ed d\u1ee5 sai gi\u00e1 tr\u1ecb ho\u1eb7c th\u1eadm ch\u00ed nh\u1eadp v\u00e0o k\u00fd t\u1ef1 kh\u00e1c s\u1ed1, n\u00f3 v\u1eabn c\u00f3 \u0111\u01b0\u1ee3c c\u00e1c thi\u1ebft l\u1eadp c\u01a1 b\u1ea3n \u0111\u1ec3 tr\u00e1nh l\u1ed7i.<\/p>\n\n\n\n
\u0110\u1ed1i v\u1edbi d\u1eef li\u1ec7u n\u0103m l\u00e0 d\u1ea1ng 4 s\u1ed1, c\u00f4ng vi\u1ec7c c\u1ee7a ch\u00fang ta r\u1ea5t \u0111\u01a1n gi\u1ea3n, ch\u00fang ta s\u1ebd chuy\u1ec3n d\u1eef li\u1ec7u \u0111\u00f3 th\u00e0nh d\u1ea1ng s\u1ed1 (d\u00f9ng h\u00e0m (int)<\/code>) r\u1ed3i so s\u00e1nh n\u00f3 v\u1edbi gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t v\u00e0 nh\u1ecf nh\u1ea5t \u0111\u1ec3 x\u00e1c th\u1ef1c.<\/p>\n\n\n\n\u0110\u1ed1i v\u1edbi d\u1eef li\u1ec7u n\u0103m ch\u1ec9 c\u00f3 2 ch\u1eef s\u1ed1, v\u1ea5n \u0111\u1ec1 s\u1ebd ph\u1ee9c t\u1ea1p h\u01a1n. V\u00ed d\u1ee5 c\u1ee5 th\u1ec3 \u0111\u1ec3 ch\u00fang ta hi\u1ec3u r\u00f5 h\u01a1n:<\/p>\n\n\n\n
- Ch\u1eb3ng h\u1ea1n b\u1ea1n c\u00f3 d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o nh\u01b0 th\u1ebf n\u00e0y
29\/11\/15<\/code> d\u00f9 ch\u00fang ta bi\u1ebft r\u1eb1ng n\u0103m h\u1ee3p l\u1ec7 l\u00e0 t\u1eeb 1900 \u0111\u1ebfn n\u0103m hi\u1ec7n t\u1ea1i th\u00ec v\u1ea5n \u0111\u1ec1 \u1edf \u0111\u00e2y l\u00e0 ch\u00fang ta g\u00e1n 19 hay 20 th\u00eam v\u00e0o gi\u00e1 tr\u1ecb 15? V\u00ec c\u1ea3 hai gi\u00e1 tr\u1ecb n\u00e0y khi g\u00e1n v\u00e0o \u0111\u1ec1u kh\u00f4ng sai.<\/li>- \u0110\u00e2y l\u00e0 l\u00fd do xu\u1ea5t hi\u1ec7n bi\u1ebfn
$utn<\/code> n\u1ebfu n\u00f3 c\u00f3 gi\u00e1 tr\u1ecb b\u1eb1ng 20, th\u00ec h\u00e0m s\u1ebd g\u00e1n 20 v\u00e0o c\u00e1c gi\u00e1 tr\u1ecb n\u1eb1m trong kho\u1ea3ng t\u1eeb 0 cho \u0111\u1ebfn 2 s\u1ed1 cu\u1ed1i c\u1ee7a n\u0103m hi\u1ec7n t\u1ea1i, t\u1ee9c l\u00e0 n\u1ebfu 2 s\u1ed1 c\u1ee7a n\u0103m cu\u1ed1i n\u1eb1m trong kho\u1ea3ng t\u1eeb 00 \u0111\u1ebfn 21 n\u00f3 s\u1ebd g\u00e1n 20 v\u00e0o, c\u00f2n n\u1ebfu r\u01a1i v\u00e0o c\u00e1c gi\u00e1 tr\u1ecb kh\u00e1c t\u1eeb 22 \u0111\u1ebfn 99 s\u1ebd g\u1eafn 19;<\/li>- N\u1ebfu
$utn<\/code> \u0111\u01b0\u1ee3c \u0111\u1eb7t b\u1eb1ng 19, t\u1ea5t c\u1ea3 d\u1eef li\u1ec7u n\u0103m 2 s\u1ed1 s\u1ebd \u0111\u01b0\u1ee3c g\u1eafn th\u00eam 19 v\u00e0o tr\u01b0\u1edbc \u0111\u00f3;<\/li>- Trong th\u1ef1c t\u1ebf \u0111\u1ed1i v\u1edbi c\u00e1c d\u1eef li\u1ec7u n\u0103m sinh ng\u01b0\u1eddi trong kho\u1ea3ng th\u1eddi gian g\u1ea7n hi\u1ec7n t\u1ea1i th\u00ec
$utn<\/code> b\u1eb1ng 20 s\u1ebd h\u1ee3p l\u00fd h\u01a1n n\u00ean m\u1eb7c \u0111\u1ecbnh h\u1ec7 th\u1ed1ng c\u0169ng set gi\u00e1 tr\u1ecb n\u00e0y n\u1ebfu v\u00f4 t\u00ecnh b\u1ea1n nh\u1eadp v\u00e0o gi\u00e1 tr\u1ecb kh\u00e1c 19 ho\u1eb7c 20;<\/li><\/ul>\n\n\n\n\u1ede ph\u1ea7n cu\u1ed1i c\u00f9ng khi tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb cho h\u00e0m, t\u00f4i \u0111\u01b0a n\u00f3 v\u00e0o m\u1ea3ng, v\u00ec c\u1ea7n l\u01b0u t\u1edbi 3 k\u1ebft qu\u1ea3 kh\u00e1c nhau, bao g\u1ed3m:<\/p>\n\n\n\n
- M\u1ed9t gi\u00e1 tr\u1ecb 0 ho\u1eb7c 1 \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh d\u1eef li\u1ec7u c\u00f3 ph\u1ea3i l\u00e0 ng\u00e0y\/th\u00e1ng\/n\u0103m ti\u00eau chu\u1ea9n kh\u00f4ng, n\u00f3 l\u00e0 gi\u00e1 tr\u1ecb \u0111\u1ea7u ti\u00ean trong m\u1ea3ng;<\/li>
- Gi\u00e1 tr\u1ecb th\u1ee9 2 c\u1ee7a m\u1ea3ng l\u00e0 gi\u00e1 tr\u1ecb ng\u00e0y th\u00e1ng n\u0103m \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a v\u1edbi s\u1ed1 0 \u0111\u1eb1ng tr\u01b0\u1edbc c\u00e1c gi\u00e1 tr\u1ecb d\u01b0\u1edbi 10 trong ng\u00e0y ho\u1eb7c\/v\u00e0 th\u00e1ng. Ngo\u00e0i ra l\u00e0 chuy\u1ec3n \u0111\u1ed5i n\u0103m t\u1eeb d\u1ea1ng 2 s\u1ed1 v\u1ec1 4 s\u1ed1;<\/li>
- Gi\u00e1 tr\u1ecb cu\u1ed1i c\u00f9ng trong m\u1ea3ng c\u0169ng l\u00e0 d\u1ea1ng 0 ho\u1eb7c 1 \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh n\u0103m c\u1ee7a d\u1eef li\u1ec7u c\u00f3 n\u1eb1m trong kh\u1eb3ng n\u0103m nh\u1ecf nh\u1ea5t v\u00e0 l\u1edbn nh\u1ea5t hay kh\u00f4ng;<\/li><\/ul>\n\n\n\n
OK, cu\u1ed1i c\u00f9ng l\u00e0 \u0111o\u1ea1n m\u00e3 ho\u00e0n ch\u1ec9nh, b\u1ea1n c\u00f3 th\u1ec3 copy-paste n\u00f3 sang m\u1ed9t \u1ee9ng d\u1ee5ng chuy\u00ean \u0111\u1ec3 vi\u1ebft code PHP nh\u01b0 Netbeans s\u1ebd d\u1ec5 quan s\u00e1t h\u01a1n nhi\u1ec1u, v\u00ec trong m\u00e3 t\u00f4i vi\u1ebft r\u1ea5t nhi\u1ec1u ch\u00fa th\u00edch.<\/p>\n\n\n\n
<?php\nfunction chuan_hoa_ntn($nscu,$nann,$naln,$utn) {\n \/\/ $nscu l\u00e0 n\u0103m c\u1ea7n chu\u1ea9n h\u00f3a, $naln l\u00e0 n\u0103m l\u1edbn nh\u1ea5t \u0111\u01b0\u1ee3c cho ph\u00e9p trong d\u1eef li\u1ec7u\n \/\/ gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 c\u1ee7a $nann n\u0103m nh\u1ecf nh\u1ea5t nh\u1ea5t l\u00e0 1900 \u0111\u1ebfn t\u1ed1i \u0111a l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i\n \/\/ gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 c\u1ee7a $naln n\u0103m l\u1edbn nh\u1ea5t l\u00e0 1900 \u0111\u1ebfn t\u1ed1i \u0111a l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i\n \/\/ nann c\u1ea7n ph\u1ea3i nh\u1ecf h\u01a1n naln \u0111\u00e2y l\u00e0 kho\u1ea3ng gi\u00e1 tr\u1ecb m\u00e0 ch\u00fang ta d\u00f9ng \u0111\u1ec3 \u0111\u00e1nh gi\u00e1 gi\u00e1 tr\u1ecb n\u0103m c\u00f3 h\u1ee3p l\u1ec7 kh\u00f4ng\n \/\/ nann n\u1ebfu kh\u00f4ng \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp ho\u1eb7c thi\u1ebft l\u1eadp sai s\u1ebd l\u1ea5y gi\u00e1 tr\u1ecb l\u00e0 1900\n \/\/ khi naln kh\u00f4ng \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp ho\u1eb7c thi\u1ebft l\u1eadp sai n\u00f3 s\u1ebd l\u1ea5y gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i\n \/\/ $utn l\u00e0 \u01b0u ti\u00ean c\u00e1c gh\u00e9p d\u1eef li\u1ec7u n\u0103m 2 s\u1ed1 l\u00e0 19 hay 20 t\u00f9y tr\u01b0\u1eddng h\u1ee3p\n \/\/ gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 c\u1ee7a $utn l\u00e0 19 ho\u1eb7c 20, khi kh\u00f4ng thi\u1ebft l\u1eadp ho\u1eb7c thi\u1ebft l\u1eadp sai n\u00f3 m\u1eb7c \u0111\u1ecbnh l\u00e0 20\n $nscu1 = trim($nscu, ' '); \/\/ lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng tr\u01b0\u1edbc v\u00e0 sau chu\u1ed7i\n $nscu2 = preg_replace('\/\\s+\/', ' ', $nscu1); \/\/ lo\u1ea1i b\u1ecf kho\u1ea3ng tr\u1eafng th\u1eeba \u1edf gi\u1eefa chu\u1ed7i\n \n $ktdu = array('~', '!', '@', '#','$', '%', '^', '&', '*', '(', ')', '_', '=', '+', '[', '{', ']', '}', '|', ':', ';', '\"', ',', '<', '>', '?', '+', '\\\\', '\\''); \/\/ k\u00fd t\u1ef1 d\u01b0 l\u1ed7i\n \/\/ V\u00ec tr\u00f9ng v\u1edbi c\u00fa ph\u00e1p trong PHP n\u00ean m\u1ed9t s\u1ed1 d\u1ea5u nh\u01b0 ' v\u00e0 \\ b\u1ea1n c\u1ea7n th\u00eam d\u1ea5u \\ \u0111\u1eb1ng tr\u01b0\u1edbc, kh\u00f4ng n\u00f3 s\u1ebd b\u00e1o l\u1ed7i.\n \n $nscu3 = str_replace($ktdu, \"\", $nscu2); \/\/ c\u00e2u l\u1ec7nh lo\u1ea1i b\u1ecf k\u00fd t\u1ef1 d\u01b0\n \n \/\/ Chuy\u1ec3n v\u00ea c\u00f9ng m\u1ed9t d\u1ea1ng d\u1ea5u ph\u00e2n c\u00e1ch\n $nscu4 = preg_replace('\/\\.\/', '\/', $nscu3); \/\/thay d\u1ea5u ch\u1ea5m\n $nscu5 = preg_replace('\/-\/', '\/', $nscu4); \/\/thay d\u1ea5u g\u1ea1ch ngang\n \n $rea = '\/^(0?[1-9]|[12]\\d|3[01])[\\\/](0?[1-9]|[1][012])[\\\/](\\d{2}|19\\d{2}|20[012]\\d)$\/'; \/\/ n\u0103m ch\u1ec9 h\u1ee3p l\u1ec7 t\u1eeb 1900 \u0111\u1ebfn 2029\n \/\/ Bi\u1ec3u th\u1ee9c ch\u00ednh quy Regex n\u00e0y b\u1eaft ng\u00e0y th\u00e1ng n\u0103m kh\u00e1 ch\u1eb7t\n \/\/ ng\u00e0y t\u1eeb 1 \u0111\u1ebfn 31 c\u00f3 th\u1ec3 c\u00f3 0 \u1edf tr\u01b0\u1edbc s\u1ed1 d\u01b0\u1edbi 10\n \/\/ th\u00e1ng t\u1eeb 1 \u0111\u1ebfn 12, c\u00f3 th\u1ec3 c\u00f3 0 \u0111\u1eb1ng tr\u01b0\u1edbc s\u1ed1 d\u01b0\u1edbi 10\n \/\/ n\u0103m b\u1eaft t\u1eeb n\u0103m 1900 \u0111\u1ebfn t\u1ed1i \u0111a 2029, h\u00e0m n\u00e0y \u0111\u00fang trong v\u00f2ng 8 n\u0103m n\u1eefa, \u0111\u1ebfn n\u0103m 2030 h\u00e0m b\u1eaft n\u0103m sinh s\u1ebd kh\u00f4ng c\u00f2n \u0111\u00fang n\u1eefa\n \n $kq=preg_match($rea, $nscu5, $match); \/\/ ki\u1ec3m tra xem c\u00f3 kh\u1edbp v\u1edbi m\u1eabu chu\u1ea9n hay ch\u01b0a\n \n if($kq==1) {\n $mn=$match[1]; \/\/ l\u1ea5y th\u00f4ng tin ng\u00e0y\n $s_mn=(int)$mn;\n if (mb_strlen($s_mn)==1) {$mn2=\"0\".$s_mn;} else {$mn2=$mn;} \/\/\u0111\u00e3 chuy\u1ec3n ng\u00e0y d\u1ea1ng d\u01b0\u1edbi 10 kh\u00f4ng c\u00f3 s\u1ed1 kh\u00f4ng \u0111\u1eb1ng tr\u01b0\u1edbc th\u00e0nh c\u00f3 s\u1ed1 0 \u0111\u1eb1ng tr\u01b0\u1edbc\n \n $mt=$match[2]; \/\/ l\u1ea5y th\u00f4ng tin th\u00e1ng\n $s_mt=(int)$mt;\n if (mb_strlen($s_mt)==1) {$mt2=\"0\".$s_mt;} else {$mt2=$mt;}\/\/\u0111\u00e3 chuy\u1ec3n th\u00e1ng d\u1ea1ng d\u01b0\u1edbi 10 kh\u00f4ng c\u00f3 s\u1ed1 kh\u00f4ng \u0111\u1eb1ng tr\u01b0\u1edbc th\u00e0nh c\u00f3 s\u1ed1 0 \u0111\u1eb1ng tr\u01b0\u1edbc\n\n $ns_hl=1; \/\/ ki\u1ec3m tra xem gi\u00e1 tr\u1ecb c\u1ee7a n\u0103m c\u00f3 h\u1ee3p l\u1ec7 hay kh\u00f4ng, m\u1eb7c \u0111\u1ecbnh \u0111\u1ec3 l\u00e0 h\u1ee3p l\u1ec7\n\n $nho_chuoi_nam=$match[3]; \/\/\u0111\u1ec3 g\u1eafn v\u00e0o khi c\u1ea7n\n\n $mna=$match[3]; \/\/ l\u1ea5y n\u0103m trong chu\u1ed7i\n $s_mna=(int)$mna; \/\/ chuy\u1ec3n v\u1ec1 d\u1ea1ng s\u1ed1, n\u1ebfu l\u00e0 d\u1ea1ng 4 s\u1ed1 s\u1ebd chuy\u1ec3n th\u00e0nh 4 s\u1ed1, n\u1ebfu l\u00e0 d\u1ea1n 2 s\u1ed1 s\u1ebd chuy\u1ec3n th\u00e0nh 2 s\u1ed1, n\u1ebfu 2 s\u1ed1 c\u00f3 s\u1ed1 0 \u0111\u1eb1ng tr\u01b0\u1edbc s\u1ebd chuy\u1ec3n th\u00e0nh d\u1ea1ng 1 s\u1ed1\n\n $y4=date(\"Y\"); \/\/ l\u1ea5y gi\u00e1 tr\u1ecb c\u1ee7a n\u0103m hi\u1ec7n t\u1ea1i \u1edf d\u1ea1ng 4 s\u1ed1, \u0111\u00e2y l\u00e0 m\u1ed9t h\u00e0m c\u1ee7a PHP, d\u00f9ng d\u1ef1 ph\u00f2ng trong tr\u01b0\u1eddng h\u1ee3p gi\u00e1 tr\u1ecb n\u0103m l\u1edbn nh\u1ea5t $nln kh\u00f4ng \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp\n\n \/\/ \u0110\u00e1nh gi\u00e1 tham s\u1ed1 n\u0103m nh\u1ecf nh\u1ea5t truy\u1ec1n v\u00e0o h\u00e0m\n if (isset($nann)) { \/\/ ki\u1ec3m tra xem d\u1eef li\u1ec7u n\u0103m l\u1edbn nh\u1ea5t c\u00f3 \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o h\u00e0m hay kh\u00f4ng\n $nann=(int)$nann; \/\/chuy\u1ec3n n\u00f3 v\u1ec1 d\u1ea1ng s\u1ed1 v\u00ec h\u00e0m is_int ki\u1ec3m tra ch\u1eb7t\n if (is_int($nann)) { \/\/ ki\u1ec3m tra xem n\u00f3 c\u00f3 ph\u1ea3i l\u00e0 s\u1ed1 nguy\u00ean hay kh\u00f4ng?\n if ($nann>$y4 || $nann<1900) {$nann_tt=1900;} \/\/n\u1ebfu c\u00f3 th\u00ec ki\u1ec3m tra n\u00f3 c\u00f3 n\u1eb1m trong gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 kh\u00f4ng \n \/\/ n\u1ebfu kh\u00f4ng h\u1ee3p th\u00ec naln \u0111\u01b0\u1ee3c g\u00e1n cho 1900\n else {$nann_tt=$nann;}}\/\/n\u1ebfu h\u1ee3p l\u1ec7 n\u00f3 m\u1edbi \u0111\u01b0\u1ee3c g\u00e1n gi\u00e1 tr\u1ecb v\u00e0o nann_tt\n else {$nann_tt=1900;} \/\/ n\u1ebfu gi\u00e1 tr\u1ecb nh\u1eadp v\u00e0o kh\u00f4ng ph\u1ea3i l\u00e0 s\u1ed1 n\u00f3 c\u0169ng \u0111\u01b0\u1ee3c g\u00e1n cho $y4, t\u1ee9c l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i \n } else {$nann_tt=1900;} \/\/ n\u1ebfu c\u00f3 tham s\u1ed1 th\u00ec l\u1ea5y gi\u00e1 tr\u1ecb c\u1ee7a $nln, c\u00f2n n\u1ebfu kh\u00f4ng c\u00f3 th\u00ec l\u1ea5y n\u0103m hi\u1ec7n t\u1ea1i\n $nann_tt=(int)$nann_tt;\/\/chuy\u1ec3n sang gi\u00e1 tr\u1ecb s\u00f3 cho ch\u1eafc \u0103n\n\n \/\/ \u0110\u00e1nh gi\u00e1 tham s\u1ed1 n\u0103m l\u1edbn nh\u1ea5t truy\u1ec1n v\u00e0o h\u00e0m\n if (isset($naln)) { \/\/ ki\u1ec3m tra xem d\u1eef li\u1ec7u n\u0103m l\u1edbn nh\u1ea5t c\u00f3 \u0111\u01b0\u1ee3c \u0111\u01b0a v\u00e0o h\u00e0m hay kh\u00f4ng\n $naln=(int)$naln; \/\/chuy\u1ec3n n\u00f3 v\u1ec1 d\u1ea1ng s\u1ed1 v\u00ec h\u00e0m is_int ki\u1ec3m tra ch\u1eb7t\n if (is_int($naln)) { \/\/ ki\u1ec3m tra xem n\u00f3 c\u00f3 ph\u1ea3i l\u00e0 s\u1ed1 nguy\u00ean hay kh\u00f4ng?\n if ($naln>$y4 || $naln<1900) {$ntt=$y4;} \/\/n\u1ebfu c\u00f3 th\u00ec ki\u1ec3m tra n\u00f3 c\u00f3 n\u1eb1m trong gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 kh\u00f4ng \n \/\/ n\u1ebfu kh\u00f4ng h\u1ee3p th\u00ec naln \u0111\u01b0\u1ee3c g\u00e1n cho n\u0103m hi\u1ec7n t\u1ea1i\n else {$ntt=$naln;}}\/\/n\u1ebfu h\u1ee3p l\u1ec7 n\u00f3 m\u1edbi \u0111\u01b0\u1ee3c g\u00e1n gi\u00e1 tr\u1ecb v\u00e0o ntt\n else {$ntt=$y4;} \/\/ n\u1ebfu gi\u00e1 tr\u1ecb nh\u1eadp v\u00e0o kh\u00f4ng ph\u1ea3i l\u00e0 s\u1ed1 n\u00f3 c\u0169ng \u0111\u01b0\u1ee3c g\u00e1n cho $y4, t\u1ee9c l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i \n } else {$ntt=$y4;} \/\/ n\u1ebfu c\u00f3 tham s\u1ed1 th\u00ec l\u1ea5y gi\u00e1 tr\u1ecb c\u1ee7a $nln, c\u00f2n n\u1ebfu kh\u00f4ng c\u00f3 th\u00ec l\u1ea5y n\u0103m hi\u1ec7n t\u1ea1i\n\n $nss=(int)$ntt; \/\/ l\u1ea5y n\u0103m so s\u00e1nh v\u00e0 chuy\u1ec3n v\u1ec1 d\u1ea1ng s\u1ed1, c\u00e1i n\u00e0y l\u00e0 4 s\u1ed1, c\u00f3 gi\u00e1 tr\u1ecb h\u1ee3p l\u1ec7 t\u1eeb 1900 \u0111\u1ebfn t\u1ed1i \u0111a l\u00e0 n\u0103m hi\u1ec7n t\u1ea1i\n\n if (mb_strlen($s_mna)==4) {\/\/V\u1edbi chu\u1ed7i n\u0103m l\u00e0 4 s\u1ed1\n if (($s_mna>$nss) || ($s_mna<$nann_tt)) {$ns_hl=0;}\n $con_nam4so=$nho_chuoi_nam;\n }\n \n \/\/ \u0110\u00e1nh gi\u00e1 tham s\u1ed1 \u01b0u ti\u00ean truy\u1ec1n v\u00e0o\n if (isset($utn)) { \/\/ ki\u1ec3m tra xem gi\u00e1 tr\u1ecb \u01b0u ti\u00ean c\u00f3 \u0111\u01b0\u1ee3c truy\u1ec1n v\u00e0o h\u00e0m hay kh\u00f4ng\n $utn=(int)$utn; \/\/chuy\u1ec3n n\u00f3 v\u1ec1 d\u1ea1ng s\u1ed1 v\u00ec h\u00e0m is_int ki\u1ec3m tra ch\u1eb7t\n if (is_int($utn)) { \/\/ ki\u1ec3m tra xem n\u00f3 c\u00f3 ph\u1ea3i l\u00e0 s\u1ed1 nguy\u00ean hay kh\u00f4ng?\n if ($utn>20 || $utn<19) {$utn_tt=20;}\n else {$utn_tt=$utn;}\/\/n\u1ebfu h\u1ee3p l\u1ec7 m\u1edbi \u0111\u01b0\u1ee3c g\u00e1n\n }\n else {$utn_tt=20;} \/\/ n\u1ebfu gi\u00e1 tr\u1ecb nh\u1eadp v\u00e0o kh\u00f4ng ph\u1ea3i l\u00e0 s\u1ed1 n\u00f3 c\u0169ng \u0111\u01b0\u1ee3c g\u00e1n l\u00e0 20 \n } else {$utn_tt=20;} \/\/ n\u1ebfu c\u00f3 tham s\u1ed1 th\u00ec l\u1ea5y gi\u00e1 tr\u1ecb c\u1ee7a $utn, c\u00f2n n\u1ebfu kh\u00f4ng c\u00f3 th\u00ec l\u1ea5y gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh l\u00e0 20\n \n\n if (mb_strlen($mna)==2) {\/\/V\u1edbi chu\u1ed7i n\u0103m l\u00e0 2 s\u1ed1\n $rep='\/^\\d{2}\/'; \/\/bi\u1ec3u th\u1ee9c ch\u00ednh quy \u0111\u1ec3 ch\u1ecdn 2 k\u00fd t\u1ef1 \u0111\u1ea7u r\u1ed3i thay th\u1ebf n\u00f3 b\u1eb1ng r\u1ed7ng \u1edf bi\u1ec3u th\u1ee9c b\u00ean d\u01b0\u1edbi \u0111\u1ec3 ch\u00fang ta c\u00f3 2 s\u1ed1 cu\u1ed1i\n $nss_tach=preg_replace($rep,'',$nss);\/\/l\u1ea5y 2 s\u1ed1 cu\u1ed1i c\u1ee7a n\u0103m c\u1ea7n so s\u00e1nh\n $nn_so=(int)$nss_tach; \/\/chuy\u1ec3n th\u00e0nh d\u1ea1ng s\u1ed1\n $y2=date(\"y\"); \/\/ l\u1ea5y gi\u00e1 tr\u1ecb 2 n\u0103m cu\u1ed1i c\u1ee7a n\u0103m hi\u1ec7n t\u1ea1i\n \/\/ gi\u00e1 tr\u1ecb \u01b0u ti\u00ean d\u00f9ng \u0111\u1ec3 quy\u1ebft \u0111\u1ecbnh gh\u00e9p s\u1ed1 \u1edf ph\u1ea7n n\u00e0y\n if ($utn_tt==19) {$nam4so=\"19\".$nho_chuoi_nam;} \n if ($utn_tt==20) {if ($s_mna>=0 && $s_mna<=$y2) {$nam4so=\"20\".$nho_chuoi_nam;} else {$nam4so=\"19\".$nho_chuoi_nam;}}\n \n $con_nam4so=(int)$nam4so;\n if(($con_nam4so>$nss) || ($con_nam4so<$nann_tt)) {$ns_hl=0;}\n }\n $kqi=$mn2.\"\/\".$mt2.\"\/\".$con_nam4so;\n \n } else {$kqi=$nscu5;$ns_hl=0;} \/\/ n\u1ebfu h\u1ee3p chu\u1ea9n s\u1ebd \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a, n\u1ebfu kh\u00f4ng s\u1ebd tr\u1ea3 v\u1ec1 $nscu5\n$ntn_arr=array();\n\n$ntn_arr[0]=$kq; \/\/ xem c\u00f3 ph\u1ea3i l\u00e0 chu\u1ed7i ng\u00e0y th\u00e1ng n\u0103m h\u1ee3p chu\u1ea9n kh\u00f4ng, 1 l\u00e0 h\u1ee3p chu\u1ea9n, 0 l\u00e0 kh\u00f4ng h\u1ee3p chu\u1ea9n\n$ntn_arr[1]=$kqi; \/\/ n\u1ebfu h\u1ee3p chu\u1ea9n s\u1ebd \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a, n\u1ebfu kh\u00f4ng s\u1ebd tr\u1ea3 v\u1ec1 $nscu5\n$ntn_arr[2]=$ns_hl; \/\/ b\u00e1o xem n\u0103m c\u00f3 h\u1ee3p l\u1ec7 so v\u1edbi y\u00eau c\u1ea7u c\u1ee7a n\u0103m l\u1edbn nh\u1ea5t kh\u00f4ng, gi\u00e1 tr\u1ecb 0, 1. N\u1ebfu b\u1eb1ng 1 l\u00e0 h\u1ee3p l\u1ec7\n\nreturn $ntn_arr;\n}\n$nscu2=\"1-2-99\";$nann2=\"1997\";$naln2=\"2012\";$utn2=\"20\";\n$tim=chuan_hoa_ntn($nscu2,$nann2,$naln2,$utn2);\n$kqt=\"\";\n\nforeach ($tim as $kqc) {\n echo $kqc.\"<\/br>\";\n}\n<\/code><\/pre>\n\n\n\nV\u00e0i k\u1ebft qu\u1ea3 demo:<\/p>\n\n\n\n
\u0110\u1ea7u v\u00e0o: $nscu2=\"1-2-09\";$nann2=\"2005\";$naln2=\"2015\";$utn2=\"20\";\n\u0110\u1ea7u ra: \n1 -> d\u1eef li\u1ec7u \u0111\u00fang chu\u1ea9n th\u1ee9 t\u1ef1 ng\u00e0y th\u00e1ng n\u0103m\n01\/02\/2009 -> d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a\n1 -> n\u0103m n\u1eb1m trong kho\u1ea3ng thi\u1ebft l\u1eadp\n\n-----\n\u0110\u1ea7u v\u00e0o: $nscu2=\"1-2-09\";$nann2=\"2010\";$naln2=\"2015\";$utn2=\"20\";\n\u0110\u1ea7u ra:\n1\n01\/02\/2009\n0 -> n\u0103m n\u1eb1m ngo\u00e0i kho\u1ea3ng thi\u1ebft l\u1eadp\n\n-----\n\u0110\u1ea7u v\u00e0o: $nscu2=\"1-2-9\";$nann2=\"2010\";$naln2=\"2015\";$utn2=\"20\";\n\u0110\u1ea7u ra:\n0 -> kh\u00f4ng ph\u1ea3i d\u1eef li\u1ec7u ng\u00e0y th\u00e1ng\n1\/2\/9\n0 -> khi \u0111\u00e3 kh\u00f4ng ph\u1ea3i d\u1eef li\u1ec7u ng\u00e0y th\u00e1ng, gi\u00e1 tr\u1ecb cu\u1ed1i c\u00f9ng ch\u1eafc ch\u1eafn l\u00e0 0\n\n\n-----\n\u0110\u1ea7u v\u00e0o: $nscu2=\"1.2.89\";$nann2=\"1980\";$naln2=\"2015\";$utn2=\"20\";\n\u0110\u1ea7u ra:\n1 -> \u0111\u00fang d\u1eef li\u1ec7u ng\u00e0y th\u00e1ng n\u0103m\n01\/02\/1989 -> d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c chu\u1ea9n h\u00f3a\n1 -> n\u0103m n\u1eb1m trong kho\u1ea3ng thi\u1ebft l\u1eadp\n\n-----\n\u0110\u1ea7u v\u00e0o: $nscu2=\"1.2.15\";$nann2=\"1980\";$naln2=\"2015\";$utn2=\"19\";\nB\u1ea1n ch\u00fa \u00fd $utn2 \u0111\u00e3 chuy\u1ec3n th\u00e0nh 19\n\u0110\u1ea7u ra:\n1\n01\/02\/1915 -> n\u1ebfu $utn\n b\u1eb1ng 20, n\u0103m s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n th\u00e0nh 2015\n0\n\n----\n\u0110\u1ea7u v\u00e0o: $nscu2=\"1.2.15\";$nann2=\"cdsd\";$naln2=\"\u00ear\";$utn2=\"rer\";\nB\u1ea1n ch\u00fa \u00fd c\u00e1c 3 bi\u1ebfn cu\u1ed1i c\u00f9ng nh\u1eadp sai d\u1eef li\u1ec7u ti\u00eau chu\u1ea9n\n\u0110\u1ea7u ra:\n1\n01\/02\/2015\n1<\/code><\/pre>\n\n\n\nOK, nh\u01b0 v\u1eady l\u00e0 t\u1ea1m \u1ed5n r\u1ed3i, xin ch\u00e0o v\u00e0 h\u1eb9n g\u1eb7p l\u1ea1i c\u00e1c b\u1ea1n trong b\u00e0i vi\u1ebft kh\u00e1c.<\/p>\n","protected":false},"excerpt":{"rendered":"
Trong b\u00e0i vi\u1ebft tr\u01b0\u1edbc, t\u00f4i \u0111\u00e3 vi\u1ebft 2 h\u00e0m x\u1eed l\u00fd ng\u00e0y th\u00e1ng n\u0103m d\u1ea1ng th\u00f4. N\u00f3 c\u00f3 t\u00e1c d\u1ee5ng r\u1ea5t t\u1ed1t trong vi\u1ec7c th\u1ed1ng k\u00ea t\u1ed5ng th\u1ec3 d\u1eef li\u1ec7u c\u1ee7a ch\u00fang ta. Cho ta bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ch\u1ee7 y\u1ebfu c\u1ee7a n\u00f3, c\u0169ng nh\u01b0 xu\u1ea5t ra c\u00e1c d\u1eef li\u1ec7u kh\u00f4ng h\u1ee3p chu\u1ea9n. B\u00e2y …<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[238],"tags":[],"yoast_head":"\n
N\u1ebfu \u0111\u00e3 bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ng\u00e0y th\u00e1ng n\u0103m sinh, ch\u00fang ta c\u00f3 th\u1ec3 x\u1eed l\u00fd th\u00eam g\u00ec n\u1eefa • Ki\u1ebfn c\u00e0ng<\/title>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t\n\t\n\t\n","yoast_head_json":{"title":"N\u1ebfu \u0111\u00e3 bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ng\u00e0y th\u00e1ng n\u0103m sinh, ch\u00fang ta c\u00f3 th\u1ec3 x\u1eed l\u00fd th\u00eam g\u00ec n\u1eefa • Ki\u1ebfn c\u00e0ng","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/","og_locale":"vi_VN","og_type":"article","og_title":"N\u1ebfu \u0111\u00e3 bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ng\u00e0y th\u00e1ng n\u0103m sinh, ch\u00fang ta c\u00f3 th\u1ec3 x\u1eed l\u00fd th\u00eam g\u00ec n\u1eefa • Ki\u1ebfn c\u00e0ng","og_description":"Trong b\u00e0i vi\u1ebft tr\u01b0\u1edbc, t\u00f4i \u0111\u00e3 vi\u1ebft 2 h\u00e0m x\u1eed l\u00fd ng\u00e0y th\u00e1ng n\u0103m d\u1ea1ng th\u00f4. N\u00f3 c\u00f3 t\u00e1c d\u1ee5ng r\u1ea5t t\u1ed1t trong vi\u1ec7c th\u1ed1ng k\u00ea t\u1ed5ng th\u1ec3 d\u1eef li\u1ec7u c\u1ee7a ch\u00fang ta. Cho ta bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ch\u1ee7 y\u1ebfu c\u1ee7a n\u00f3, c\u0169ng nh\u01b0 xu\u1ea5t ra c\u00e1c d\u1eef li\u1ec7u kh\u00f4ng h\u1ee3p chu\u1ea9n. B\u00e2y …","og_url":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/","og_site_name":"Ki\u1ebfn c\u00e0ng","article_author":"https:\/\/www.facebook.com\/anhducnguyen87\/","article_published_time":"2021-08-17T17:45:17+00:00","author":"Nguy\u1ec5n \u0110\u1ee9c Anh","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Nguy\u1ec5n \u0110\u1ee9c Anh","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"17 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/","url":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/","name":"N\u1ebfu \u0111\u00e3 bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ng\u00e0y th\u00e1ng n\u0103m sinh, ch\u00fang ta c\u00f3 th\u1ec3 x\u1eed l\u00fd th\u00eam g\u00ec n\u1eefa • Ki\u1ebfn c\u00e0ng","isPartOf":{"@id":"https:\/\/kiencang.net\/#website"},"datePublished":"2021-08-17T17:45:17+00:00","dateModified":"2021-08-17T17:45:17+00:00","author":{"@id":"https:\/\/kiencang.net\/#\/schema\/person\/5e7e1a04d8d1218ad8c421ba43d25c16"},"breadcrumb":{"@id":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kiencang.net\/xu-ly-them-ngay-thang-nam\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kiencang.net\/"},{"@type":"ListItem","position":2,"name":"N\u1ebfu \u0111\u00e3 bi\u1ebft c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ng\u00e0y th\u00e1ng n\u0103m sinh, ch\u00fang ta c\u00f3 th\u1ec3 x\u1eed l\u00fd th\u00eam g\u00ec n\u1eefa"}]},{"@type":"WebSite","@id":"https:\/\/kiencang.net\/#website","url":"https:\/\/kiencang.net\/","name":"Ki\u1ebfn c\u00e0ng","description":"\u00d4m l\u00fd thuy\u1ebft, h\u00f4n th\u1ef1c h\u00e0nh","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kiencang.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"vi"},{"@type":"Person","@id":"https:\/\/kiencang.net\/#\/schema\/person\/5e7e1a04d8d1218ad8c421ba43d25c16","name":"Nguy\u1ec5n \u0110\u1ee9c Anh","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/kiencang.net\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6d71f9b89393952a8382e30dad26c1ec?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6d71f9b89393952a8382e30dad26c1ec?s=96&d=monsterid&r=g","caption":"Nguy\u1ec5n \u0110\u1ee9c Anh"},"description":"Sinh n\u0103m 1987, t\u1ed1t nghi\u1ec7p Cao \u0111\u1eb3ng th\u1ef1c h\u00e0nh FPT qu\u00e3ng 2014, chuy\u00ean ng\u00e0nh Thi\u1ebft k\u1ebf website. T\u00f4i th\u00edch Content, SEO, Ads, T\u0103ng t\u1ed1c website v\u00e0 Th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed. B\u00ean c\u1ea1nh b\u00e0i t\u1ef1 vi\u1ebft, t\u00f4i c\u0169ng d\u1ecbch nhi\u1ec1u n\u1ed9i dung th\u00fa v\u1ecb c\u1ee7a c\u00e1c t\u00e1c gi\u1ea3 kh\u00e1c nhau. FB c\u00e1 nh\u00e2n: facebook.com\/anhducnguyen87. Email li\u00ean h\u1ec7: guiemailchotoi@gmail.com","sameAs":["https:\/\/www.facebook.com\/anhducnguyen87\/"],"url":"https:\/\/kiencang.net\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/posts\/13961"}],"collection":[{"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/comments?post=13961"}],"version-history":[{"count":0,"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/posts\/13961\/revisions"}],"wp:attachment":[{"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/media?parent=13961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/categories?post=13961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kiencang.net\/wp-json\/wp\/v2\/tags?post=13961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}