Hướng dẫn how to calculate the age in php? - làm thế nào để tính tuổi trong php?

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.

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:30 (UTC/GMT +8 giờ)

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:

diff($bday);
printf(' Your age : %d years, %d month, %d days', $diff->y, $diff->m, $diff->d);
printf("\n");
?>

Đầ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ơ đồ :

Hướng dẫn how to calculate the age in php? - làm thế nào để tính tuổi trong php?

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: Nhà điều hành php ternary vs Null Coatorescing Toán tử

Khi đối số đầu tiên của bạn là NULL, về cơ bản, chúng giống nhau ngoại trừ việc NULL kết hợp sẽ không xuất ra E_Notice khi bạn có biến không xác định. Các tài liệu di chuyển PHP 7.0 có điều này có điều này:

Toán tử Null Coalescing (??) đã được thêm vào dưới dạng đường cú pháp cho trường hợp phổ biến cần sử dụng ternary kết hợp với isset (). Nó trả lại toán hạng đầu tiên của nó nếu nó tồn tại và không phải là null; Nếu không, nó trả lại toán hạng thứ hai của nó.

Dưới đây là một số mã ví dụ để chứng minh điều này:

 null);

print $b['a'] ?? 'd'; // d
print "\n";

print $b['a'] ?: 'd'; // d
print "\n";

print $b['c'] ?? 'e'; // e
print "\n";

print $b['c'] ?: 'e'; // Notice: Undefined index: c in /in/apAIb on line 33
print "\n";

Các dòng có thông báo là những dòng mà tôi đang sử dụng toán tử ternary tốc ký trái ngược với toán tử kết hợp null. Tuy nhiên, ngay cả với thông báo, PHP sẽ trả lời lại tương tự.

Thực thi mã: https://3v4l.org/mcavc

Tất nhiên, điều này luôn luôn giả định đối số đầu tiên là null. Một khi nó không còn vô giá trị, thì bạn sẽ kết thúc với sự khác biệt trong đó ?? Nhà điều hành sẽ luôn trả lại đối số đầu tiên trong khi?

So:

$a = false ?? 'f'; // false
$b = false ?: 'g'; // 'g'

Sau đó, sẽ có $ a bằng sai và $ b bằng 'g'.

Tham khảo: https://bit.ly/35yuanb

Làm thế nào tôi có thể có được tuổi hiện tại trong PHP?

PHP $ bday = new DateTime ('11 .4. 1987 ');// Ngày sinh của bạn $ hôm nay = DateTime mới (ngày ('m.d.y'));$ diff = $ hôm nay-> diff ($ bday);printf ('tuổi của bạn: %d năm, %d tháng, %d ngày', $ diff-> y, $ diff-> m, $ diff-> d);printf ("\ n");?> N.B .: Kết quả có thể varry cho ngày và giờ hệ thống của bạn.

Làm cách nào để tính tuổi trong mysql?

Trong MySQL, bạn có thể sử dụng hàm TimestampDiff () sẵn để tính chênh lệch giữa hai ngày và trả về giá trị trong ngày, tháng hoặc năm.use the inbuilt TIMESTAMPDIFF() function to compute the difference between two dates and return a value either in days, months or years.

Làm cách nào để tính tuổi trong HTML?

hàm tính toán (ngày) {const now = new date ();const diff = toán học.abs (bây giờ - ngày);const tuổi = toán học.Tầng (Diff / (1000 * 60 * 60 * 24 * 365));Trả về tuổi} var picker = new Pikaday ({trường: tài liệu.