Rumah > Soal Jawab > teks badan
P粉5742689892023-08-21 15:03:33
Cubalah.
function getAge(dateString) { var today = new Date(); var birthDate = new Date(dateString); var age = today.getFullYear() - birthDate.getFullYear(); var m = today.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { age--; } return age; }
Saya percaya satu-satunya bahagian kod anda yang kelihatan kasar ialah bahagian substr
.
Fiddle: http://jsfiddle.net/codeandcloud/n33RJ/
P粉4781887862023-08-21 11:57:16
Saya akan memilih kebolehbacaan:
function _calculateAge(birthday) { // birthday is a date var ageDifMs = Date.now() - birthday.getTime(); var ageDate = new Date(ageDifMs); // miliseconds from epoch return Math.abs(ageDate.getUTCFullYear() - 1970); }
Penafian: Kaedah ini juga mempunyai masalah ketepatan, jadi ia tidak boleh dipercayai sepenuhnya. Ralat mungkin berlaku pada tahun tertentu, jam tertentu atau waktu penjimatan siang (bergantung pada zon waktu).
Jika ketepatan adalah sangat penting, saya mengesyorkan menggunakan perpustakaan untuk mengendalikan perkara ini. Juga, @Naveens post
mungkin yang paling tepat kerana ia tidak bergantung pada masa.