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

Trong bài viết này, chúng ta sẽ xem cách tính tuổi theo ngày sinh ở định dạng YYYY-MM-DD bằng JavaScript

Sử dụng các phương thức ngày gốc

Chúng ta có thể sử dụng các phương thức ngày gốc để tính tuổi của một người được cung cấp ngày sinh ở định dạng YYYY-MM-DD

Để làm điều này, chúng tôi viết

const calculateAge = (birthday) => {
const ageDifMs = Date.now() - new Date(birthday).getTime();
const ageDate = new Date(ageDifMs);
return Math.abs(ageDate.getUTCFullYear() - 1970);
}
console.log(calculateAge('1960-01-21'))

Chúng tôi tạo phương thức calculateAge với tham số birthday nhận một chuỗi ngày mà chúng tôi có thể chuyển đổi thành một ngày để tính tuổi dựa trên nó

Trong hàm, chúng ta trừ đi Date.now , có dấu thời gian của ngày-thời gian hiện tại tính bằng mili giây

Và chúng tôi tạo một phiên bản Date mới và gọi getTime để lấy dấu thời gian của birthday mà chúng tôi chuyển qua tính bằng mili giây

Sau đó, chúng tôi gán kết quả cho ageDifMs

Sau đó, chúng tôi chuyển ageDifMs cho hàm tạo Date để nhận

const calculateAge = (birthday) => {
const startDate = new Date();
const endDate = new Date(birthday);
return Math.abs(moment.duration(endDate - startDate).years());
}
console.log(calculateAge('1960-01-21'))
1 là ngày được tạo từ nửa đêm ngày 1 tháng 1 năm 1970 theo giờ UTC cộng với khoảng thời gian được chỉ định bởi khoảng thời gian mà chúng tôi chuyển vào

Ta gọi

const calculateAge = (birthday) => {
const startDate = new Date();
const endDate = new Date(birthday);
return Math.abs(moment.duration(endDate - startDate).years());
}
console.log(calculateAge('1960-01-21'))
2 lấy năm trừ 1970 để được tuổi

Sau đó, gọi cho

const calculateAge = (birthday) => {
const startDate = new Date();
const endDate = new Date(birthday);
return Math.abs(moment.duration(endDate - startDate).years());
}
console.log(calculateAge('1960-01-21'))
3 để đảm bảo rằng nó là số dương bất kể birthday có trước nửa đêm ngày 1 tháng 1 năm 1970 theo giờ UTC hay không

Trong hướng dẫn này, bạn sẽ học cách tạo một công cụ tính tuổi bằng JavaScript. Đây là một dự án JavaScript dành cho người mới bắt đầu sẽ giúp bạn hiểu ngôn ngữ này

Máy tính tuổi mà chúng tôi sẽ tạo là một máy tính đơn giản sẽ giúp người dùng tính tuổi của một người.

Người dùng sẽ nhập ngày sinh của người đó và máy tính sẽ tính chính xác tuổi của người đó theo năm, tháng, ngày

Tập lệnh của máy tính tuổi được sử dụng trong hướng dẫn này là duy nhất, nó sử dụng một cách tiếp cận khác để tính tuổi của một người. Cung cấp tuổi chính xác của người tính theo ngày thậm chí trong phạm vi hàng nghìn năm

Đây là cách máy tính tuổi của chúng tôi trông như thế nào

Làm cách nào để tính tuổi trong JavaScript?
Kiểm tra ứng dụng

    Mục lục


Máy tính tuổi JavaScript

Hãy bắt đầu tạo ứng dụng tính tuổi bằng cách tạo 3 tệp cần thiết

  1. HTML (chỉ mục. html) - Đây là tệp HTML chính của ứng dụng.
  2. CSS (kiểu. css) - File này dùng để viết CSS style rule cho ứng dụng.
  3. JavaScript (tập lệnh. js) - Đây là tệp JavaScript chính của ứng dụng. Tất cả logic của ứng dụng sẽ được viết trong tệp này.

Chúng tôi sẽ thảo luận riêng từng phần được đề cập ở trên. Động cơ chính ở đây là để hiểu logic được tạo ra như thế nào, vì vậy chúng ta sẽ thảo luận chi tiết về phần JavaScript


1. Tạo cấu trúc của máy tính tuổi

Đầu tiên, chúng ta sẽ tạo một cấu trúc HTML cho ứng dụng. Hai tệp còn lại (kiểu. css và kịch bản. js) sẽ được kết nối với tệp HTML này

Tạo một bộ chứa lớp sẽ chứa tất cả các thành phần khác của ứng dụng

Bên trong vùng chứa, tạo một phần tử

khác với lớp máy tính tuổi. It will contain everything related to the age calculator.

Trong phần tử age-calculate, hãy tạo một tiêu đề hiển thị tên của ứng dụng, một phần tử

cho các điều khiển và một .
element for result.

Age Calculator

Phần tử điều khiển sẽ chứa các điều khiển của ứng dụng. Nó sẽ chứa các trường nhập để nhập ngày và các nút để tính tuổi

Kết quả sẽ được hiển thị trong phần tử kết quả mà chúng ta đã tạo ở trên

Hoàn thành mã HTML





  
  
  
  
  
  Javascript Age Calculator



  

Age Calculator

đầu ra

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

2. Tạo kiểu máy tính tuổi

Bây giờ, chúng ta sẽ tạo kiểu cho máy tính tuổi. Chúng tôi sẽ tạo một tệp CSS và thêm các quy tắc CSS vào đó

________số 8_______
Làm cách nào để tính tuổi trong JavaScript?
báo cáo quảng cáo này

3. Tạo logic cho máy tính tuổi

Để bắt đầu tạo mã JavaScript cho máy tính tuổi, chúng tôi sẽ bắt đầu với việc chọn các yếu tố mà chúng tôi muốn làm việc với

I. Chọn phần tử cần thiết

Chúng ta sẽ chọn ô nhập ngày tháng, nút tính tuổi và phần tử kết quả

// selecting the elements
var date = document.getElementById('date');
var calculate = document.getElementById('calculate');
var result = document.querySelector('.result');

II. Đặt ngày tối đa cho đến hôm nay

điều đầu tiên cần làm là đặt trường nhập ngày thành ngày tối đa là ngày hôm nay. Chúng tôi sẽ sử dụng thuộc tính

Age Calculator

3 để đặt ngày tối đa

Chúng tôi cần làm điều này vì trường nhập ngày sẽ không cho phép người dùng nhập ngày trong tương lai vì ngày sinh chỉ có thể trong quá khứ

// set maximum date to today
date.max = new Date().toISOString().split('T')[0];

III. Tạo hàm tính tuổi

Bây giờ, chúng ta cần tạo một hàm để tính tuổi. tên hàm được sử dụng ở đây là 'calculateAge'. Bạn có thể sử dụng bất kỳ tên nào bạn muốn

Chức năng sẽ hoạt động trong 4 giai đoạn. Đầu tiên, nó sẽ tính tuổi thực tế theo năm, sau đó tính theo tháng và sau đó tính theo ngày. Sau đó, trong giai đoạn cuối cùng, nó sẽ hiển thị kết quả

Tính khoảng cách năm chính xác

Khoảng cách năm không thể được tính bằng cách lấy chênh lệch giữa năm sinh và năm hiện tại. Đây là lý do tại sao

Ví dụ: nếu một người sinh vào ngày 5 tháng 5 năm 2000 và vào năm sau vào ngày 1 tháng 1 năm 2001, bạn tính tuổi bằng cách lấy chênh lệch giữa năm thứ i. e (2001 - 2000) và có (tuổi = 1) năm. Sai chỗ nào. Tuổi hiện tại là gần 7 tháng

Vì vậy, để tính khoảng cách năm chúng ta phải xem 2 điều

  1. Nếu tháng hiện tại lớn hơn tháng sinh, thì chúng ta có thể tính khoảng cách năm bằng cách lấy hiệu giữa năm hiện tại và năm sinh
  2. Nếu tháng hiện tại bằng tháng sinh thì cần tra ngày. Nếu ngày hiện tại lớn hơn ngày sinh, thì chúng ta cũng có thể tính khoảng cách năm bằng cách lấy hiệu giữa năm hiện tại và năm sinh
  3. Trong bất kỳ trường hợp nào khác, chúng tôi cần mất ít hơn 1 năm
// calculate exact year gap
var years;
if ( today.getMonth() > birthDate.getMonth() ||
     ( today.getMonth() == birthDate.getMonth() &&
      today.getDate() >= birthDate.getDate()
     )
   ) {
  years = today.getFullYear() - birthDate.getFullYear();
}
else {
  years = today.getFullYear() - birthDate.getFullYear() - 1;
}

Tính khoảng cách tháng chính xác

Tính khoảng cách tháng thật dễ dàng. Ta chỉ cần kiểm tra xem ngày hiện tại có lớn hơn ngày sinh hay bằng ngày sinh hay không thì có thể tính chênh lệch tháng bằng cách lấy hiệu giữa tháng hiện tại và tháng sinh

Nếu không, thì chúng ta cần mất 1 tháng ít hơn

// calculate exact month gap
var months;
if (today.getDate() >= birthDate.getDate()) {
  months = today.getMonth() - birthDate.getMonth();
}
else if (today.getDate() < birthDate.getDate()) {
  months = today.getMonth() - birthDate.getMonth() - 1;
}
// make month positive
months = months < 0 ? months + 12 : months;

Trong trường hợp chúng tôi nhận được các tháng âm, chúng tôi cần làm cho nó trở nên tích cực bằng cách thêm 12 vào nó

Tính khoảng cách ngày chính xác

Tính toán khoảng cách ngày hơi phức tạp vì ngày có thể được phân phối trong 2 tháng khác nhau. Ví dụ: nếu bạn sinh vào ngày 15 tháng 5 và hôm nay là ngày 5 tháng 6, thì đối với khoảng cách ngày, bạn sẽ phải xem xét các ngày của cả tháng 5 và các ngày đã qua trong tháng 6

Vì vậy, bạn phải kiểm tra xem ngày hiện tại có lớn hơn ngày sinh hay bằng ngày sinh không thì bạn có thể tính khoảng cách ngày bằng cách lấy hiệu giữa ngày hiện tại và ngày sinh

Nếu không, hãy trừ ngày hôm nay từ ngày sinh và cộng nó vào các ngày trong tháng sinh. tôi. e

Age Calculator

4

// calculate exact day gap
var days;
var monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
if (today.getDate() >= birthDate.getDate()) {
  days = today.getDate() - birthDate.getDate();
} else {
  days = today.getDate() - birthDate.getDate() + monthDays[birthDate.getMonth()];
}

IV. Hiển thị kết quả

Bây giờ, chúng ta cần hiển thị kết quả. Chúng ta sẽ sử dụng thuộc tính

Age Calculator

5 để thiết lập kết quả

Bạn cũng có thể chúc mừng sinh nhật người dùng bằng cách kiểm tra xem cả tháng và ngày đều là 0

Age Calculator

0

V. Thêm trình xử lý sự kiện Nhập phím và tự động lấy nét cho trường nhập ngày

Age Calculator

1

Một phương pháp khác kém chính xác hơn - Một cách có thể là tìm số mili giây giữa hai ngày và sau đó chuyển đổi nó thành ngày rồi thành năm. Nhưng phương pháp này không chính xác. Khi tuổi tăng lên, nó đưa ra tuổi sai theo ngày (trong khi tuổi theo tháng hoặc năm có thể đúng).


Mã hoàn chỉnh của máy tính tuổi JavaScript

Đây là mã hoàn chỉnh của JavaScript Age Calculator

Thí dụ

Age Calculator

2

▶ Dùng thử


Phần kết luận

Máy tính tuổi JavaScript là một ứng dụng web đơn giản và dễ sử dụng. Đó là một cách tuyệt vời để học cách sử dụng JavaScript và DOM

II là một dự án JavaScript cấp độ mới bắt đầu đáng để xem qua. Nó sẽ dạy bạn về đối tượng Date trong JavaScript và thao tác DOM

Cách tính tuổi từ ngày trong js?

var dob = new Date("24/06/2008");
//tính chênh lệch tháng so với ngày hiện tại
var month_diff = Ngày. bây giờ () - dob. dành thời gian();
// chuyển đổi sự khác biệt tính toán trong định dạng ngày
var age_dt = ngày mới (tháng_diff);
// trích xuất năm kể từ ngày
var năm = age_dt. getUTCFullYear();

Làm cách nào để tạo một máy tính tuổi trong JavaScript?

Dưới đây là thông tin đầy đủ về cách tôi tạo ra nó, từng bước một. .
Bước 1. Tạo cấu trúc cơ bản. .
Bước 2. Thêm tiêu đề hoặc tiêu đề. .
Bước 3. Tạo một nơi để nhập ngày sinh. .
Bước 4. Tạo một nút để gửi. .
Bước 5. Tạo màn hình xem tuổi. .
Bước 6. Kích hoạt máy tính tuổi bằng JavaScript

Công thức tính tuổi là gì?

Phương pháp tính tuổi liên quan đến việc so sánh ngày sinh của một người với ngày cần tính tuổi. Ngày sinh được trừ đi từ ngày đã cho, cho biết tuổi của người đó. Tuổi = Ngày tháng năm - Ngày sinh .

Làm cách nào để tính năm trong JavaScript?

Ngày JavaScript getFullYear() .