Hình tôi sẽ ném cái này vào đây vì đây dường như là hình thức phổ biến nhất của câu hỏi này.
Tôi đã thực hiện một so sánh 100 năm trên 3 loại hàm tuổi phổ biến nhất mà tôi có thể tìm thấy cho PHP và đăng kết quả của mình [cũng như các chức năng] lên blog của mình.
Như bạn có thể thấy ở đó, cả 3 func đều có hình dạng tốt chỉ với một sự khác biệt nhỏ về hàm thứ 2. Đề xuất của tôi dựa trên kết quả của tôi là sử dụng chức năng thứ 3 trừ khi bạn muốn làm điều gì đó cụ thể vào ngày sinh nhật của một người, trong trường hợp đó, hàm đầu tiên cung cấp một cách đơn giản để làm chính xác điều đó.
Tìm thấy vấn đề nhỏ với bài kiểm tra, và một vấn đề khác với phương pháp thứ 2! Cập nhật sắp tới blog sớm! Hiện tại, tôi sẽ lưu ý, phương pháp thứ 2 vẫn là phương pháp phổ biến nhất mà tôi tìm thấy trực tuyến, nhưng vẫn là phương pháp tôi tìm thấy sự không chính xác nhất!
Đề xuất của tôi sau khi đánh giá 100 năm của tôi:
Nếu bạn muốn một cái gì đó kéo dài hơn để bạn có thể bao gồm các dịp như sinh nhật và như vậy:
function getAge[$date] { // Y-m-d format
$now = explode["-", date['Y-m-d']];
$dob = explode["-", $date];
$dif = $now[0] - $dob[0];
if [$dob[1] > $now[1]] { // birthday month has not hit this year
$dif -= 1;
}
elseif [$dob[1] == $now[1]] { // birthday month is this month, check day
if [$dob[2] > $now[2]] {
$dif -= 1;
}
elseif [$dob[2] == $now[2]] { // Happy Birthday!
$dif = $dif." Happy Birthday!";
};
};
return $dif;
}
getAge['1980-02-29'];
Nhưng nếu bạn chỉ đơn giản là muốn biết độ tuổi và không có gì hơn, thì: if you just simply want to know the age and nothing more, then:
function getAge[$date] { // Y-m-d format
return intval[substr[date['Ymd'] - date['Ymd', strtotime[$date]], 0, -4]];
}
getAge['1980-02-29'];
Xem blog
Một lưu ý chính về phương thức strtotime
:
Note:
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the
separator between the various components: if the separator is a slash [/],
then the American m/d/y is assumed; whereas if the separator is a dash [-]
or a dot [.], then the European d-m-y format is assumed. If, however, the
year is given in a two digit format and the separator is a dash [-, the date
string is parsed as y-m-d.
To avoid potential ambiguity, it's best to use ISO 8601 [YYYY-MM-DD] dates or
DateTime::createFromFormat[] when possible.
Một số ứng dụng web là cần thiết để hiển thị tuổi của người dùng. Trong trường hợp đó, bạn cần tính độ tuổi người dùng từ ngày sinh. Tại đây, chúng tôi sẽ cung cấp một đoạn mã PHP ngắn để tính tuổi từ ngày sinh.
Trong mã sau, các hàm date[]
, date_create[]
và
function getAge[$date] { // Y-m-d format
return intval[substr[date['Ymd'] - date['Ymd', strtotime[$date]], 0, -4]];
}
getAge['1980-02-29'];
0 được sử dụng để tính tuổi của người dùng cho đến ngày nay trong PHP.$dateOfBirth = "17-10-1985";
$today = date["Y-m-d"];
$diff = date_diff[date_create[$dateOfBirth], date_create[$today]];
echo 'Age is '.$diff->format['%y'];
Sử dụng mã trên để có tuổi từ ngày sinh bằng các hàm ngày PHP.
Ngày php: Bài tập-18 với giải pháp
Viết tập lệnh PHP để tính độ tuổi hiện tại của một người.
Ngày sinh mẫu: 11.4.1987
Giải pháp mẫu:
Mã PHP:
Đầu ra mẫu:
Your age : 30 years, 3 month, 0 days
N.B .: Kết quả có thể varry cho ngày và giờ hệ thống của bạn.
Sơ đồ :
Trình chỉnh sửa mã PHP:
Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn [và nhận xét] thông qua Disqus.
Trước đó: Viết hàm PHP để có được ngày bắt đầu và ngày kết thúc của một tuần [theo số tuần] của một năm cụ thể. Write a PHP function to
get start and end date of a week [by week number] of a particular year.
Next: Write a PHP script to calculate weeks between two dates.
PHP: Lời khuyên trong ngày
PHP: PDOException "Không thể tìm thấy trình điều khiển"
Bạn cần phải có một mô -đun gọi là PDO_MYSQL. Tìm kiếm theo sau trong phpinfo [].
pdo_mysql PDO Driver for MySQL, client library version => 5.1.44
Tham khảo: //bit.ly/3npqfzt