Hướng dẫn how do you check today is last day of the month in javascript? - Làm thế nào để bạn kiểm tra hôm nay là ngày cuối cùng của tháng trong javascript?

Về mặt máy tính, các giải pháp new Date[]regular expression chậm! Nếu bạn muốn một lớp một lớp siêu nhanh [và siêu hấp thụ], hãy thử cái này [giả sử m ở định dạng Jan=1]. Tôi tiếp tục thử các thay đổi mã khác nhau để có được hiệu suất tốt nhất.

Phiên bản nhanh nhất hiện tại của tôi:

Sau khi xem xét kiểm tra năm câu hỏi liên quan này bằng cách sử dụng các toán tử bitwise [tốc độ tuyệt vời] và khám phá những gì số ma thuật 25 & 15 đại diện, tôi đã đưa ra sự kết hợp tối ưu hóa này [lưu ý các tham số m &

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
1 rõ ràng phải là số nguyên cho điều này làm việc]:

function getDaysInMonth[m, y] {
    return m===2 ? y & 3 || ![y%25] && y & 15 ? 28 : 29 : 30 + [m+[m>>3]&1];
}

Với sự thay đổi bit, điều này rõ ràng giả định rằng các tham số m &

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
1 của bạn đều là số nguyên, vì các số chuyển như chuỗi sẽ dẫn đến kết quả kỳ lạ.

JSfiddle: //jsfiddle.net/trueblueaussie/h89x3/22/ //jsfiddle.net/TrueBlueAussie/H89X3/22/

Kết quả của JSperf: //jsperf.com/days-in-month-foed-fole/5 //jsperf.com/days-in-month-head-to-head/5

Vì một số lý do,

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
4 hiệu quả hơn
Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
5 trên hầu hết các trình duyệt.

Sự cạnh tranh thực sự duy nhất cho tốc độ là từ @gitaarlab, vì vậy tôi đã tạo ra một JSPERF đối đầu để chúng tôi kiểm tra: //jsperf.com/days-in-month-tread-to-head/5

Nó hoạt động dựa trên câu trả lời của năm bước nhảy của tôi ở đây: JavaScript để tìm năm Leap Câu trả lời này ở đây Kiểm tra năm bước sử dụng các toán tử bitwise [tốc độ tuyệt vời] cũng như logic nhị phân sau đây.

Một bài học nhanh trong các tháng nhị phân:

Nếu bạn giải thích chỉ số của các tháng mong muốn [Jan = 1] trong nhị phân, bạn sẽ nhận thấy rằng tháng với 31 ngày có Bit 3 Clear và Bit 0 Set, hoặc bit 3 Set và Bit 0 Clear.

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days

Điều đó có nghĩa là bạn có thể thay đổi giá trị 3 vị trí với

Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
6, XOR các bit với
Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
7 gốc và xem kết quả là
Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
8 hoặc
Jan = 1  = 0001 : 31 days
Feb = 2  = 0010
Mar = 3  = 0011 : 31 days
Apr = 4  = 0100
May = 5  = 0101 : 31 days
Jun = 6  = 0110
Jul = 7  = 0111 : 31 days
Aug = 8  = 1000 : 31 days
Sep = 9  = 1001
Oct = 10 = 1010 : 31 days
Nov = 11 = 1011
Dec = 12 = 1100 : 31 days
9 ở vị trí bit 0 bằng




Find out the last day of a month





0. Lưu ý: Hóa ra




Find out the last day of a month





1 nhanh hơn một chút so với XOR [




Find out the last day of a month





2] và




Find out the last day of a month





3 cho kết quả tương tự trong bit 0.

Kết quả của JSperf: //jsperf.com/days-in-month-perf-test/6: //jsperf.com/days-in-month-perf-test/6

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

JavaScript DateTime: Bài tập-9 với giải pháp

Viết một chức năng JavaScript để có được ngày cuối cùng của một tháng.

Dữ liệu kiểm tra: Console.log [cuối cùng [2014,0]]; Console.log [cuối cùng [2014,1]]; Console.log [cuối cùng [2014,11]]; Đầu ra: 31 28 31
console.log[lastday[2014,0]];
console.log[lastday[2014,1]];
console.log[lastday[2014,11]];
Output :
31
28
31

Giải pháp mẫu:-

Mã HTML:





Find out the last day of a month





Mã JavaScript:

var lastday = function[y,m]{
return  new Date[y, m +1, 0].getDate[];
}
console.log[lastday[2014,0]];
console.log[lastday[2014,1]];
console.log[lastday[2014,11]];

Đầu ra mẫu:

31
28
31

Sơ đồ:

Bản thử trực tiếp:

Xem Pen JavaScript- Tìm hiểu vào ngày cuối cùng của một tháng vào ngày 9- 9 của W3Resource [@w3resource] trên Codepen.

Cải thiện giải pháp mẫu này và đăng mã của bạn thông qua Disqus

Trước đây: Viết hàm JavaScript để có được sự khác biệt giữa hai ngày tính theo ngày. Write a JavaScript function to get difference between two dates in days.
Next: Write a JavaScript function to calculate 'yesterday day'.

Mức độ khó của bài tập này là gì?

Kiểm tra kỹ năng lập trình của bạn với bài kiểm tra của W3Resource.

JavaScript: Lời khuyên trong ngày

Phương pháp isnan

const name = 'Robert Owen';
const age = 25;

console.log[Number.isNaN[name]];
console.log[Number.isNaN[age]];

console.log[isNaN[name]];
console.log[isNaN[age]];

Với phương thức số.isnan, bạn có thể kiểm tra xem giá trị bạn vượt qua có giá trị số và bằng NAN không. Tên không phải là một giá trị số, vì vậy số.isnan [tên] trả về sai. Tuổi là một giá trị số, nhưng không bằng nan, vì vậy số. Với phương thức ISNAN, bạn có thể kiểm tra xem giá trị bạn vượt qua không phải là số. Tên không phải là một số, vì vậy isnan [tên] trả về đúng. Tuổi là một con số, vì vậy isnan [tuổi] trả về sai.
With the isNaN method, you can check if the value you pass is not a number. name is not a number, so isNaN[name] returns true. age is a number, so isNaN[age] returns false.

Tham khảo: //bit.ly/2hcpkm6

  • Bài tập: Top 16 chủ đề phổ biến nhất hàng tuần
  • Bài tập SQL, Thực hành, Giải pháp - Tham gia
  • Bài tập SQL, Thực hành, Giải pháp - Quan sát phụ
  • JavaScript Basic - Bài tập, Thực hành, Giải pháp
  • Java Array: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Tuyên bố có điều kiện
  • Cơ sở dữ liệu nhân sự - Sắp xếp bộ lọc: Bài tập, Thực hành, Giải pháp
  • C Bài tập lập trình, Thực hành, Giải pháp: Chuỗi
  • Các loại dữ liệu Python: Từ điển - Bài tập, Thực hành, Giải pháp
  • Câu đố lập trình Python - Bài tập, Thực hành, Giải pháp
  • Mảng C ++: Bài tập, Thực hành, Giải pháp
  • Báo cáo và vòng lặp có điều kiện JavaScript - Bài tập, Thực hành, Giải pháp
  • Thuật toán cơ bản C# Sharp: Bài tập, Thực hành, Giải pháp
  • Python Lambda - Bài tập, Thực hành, Giải pháp
  • Python Pandas DataFrame: Bài tập, Thực hành, Giải pháp
  • Công cụ chuyển đổi
  • JavaScript: HTML Mẫu xác thực

Làm thế nào tôi có thể có được ngày cuối cùng của tháng trong thời điểm này?

Chúng ta có thể sử dụng phương pháp Startof để có được ngày đầu tiên của tháng hiện tại.Và chúng ta có thể sử dụng phương pháp Endof để có được ngày cuối cùng của tháng hiện tại.use the endOf method to get the last day of the current month.

Getdate [] trong javascript là gì?

Phương thức getDate [] trả về ngày trong tháng cho ngày được chỉ định theo giờ địa phương.returns the day of the month for the specified date according to local time.

Làm thế nào kiểm tra xem một ngày biểu mẫu là trước hôm nay JavaScript?

Làm thế nào để bạn kiểm tra xem một ngày là trước ngày hiện tại trong JavaScript?const date = ngày mới ['2022-09-24'];// 👇 1663977600000 Bảng điều khiển.Nhật ký [ngày. Để kiểm tra xem ngày hôm nay là ngày hôm nay: Sử dụng hàm tạo ngày [] để tạo ngày mới.Use the Date[] constructor to create a new date.

Bài Viết Liên Quan

Chủ Đề