Hướng dẫn how do you check if something is a date in javascript? - làm cách nào để kiểm tra xem thứ gì đó có phải là ngày tháng trong javascript không?

Đối với tất cả các loại tôi đã nấu một hàm nguyên mẫu đối tượng. Nó có thể được sử dụng cho bạn

Object.prototype.typof = function(chkType){ var inp = String(this.constructor), customObj = (inp.split(/\({1}/))[0].replace(/^\n/,'').substr(9), regularObj = Object.prototype.toString.apply(this), thisType = regularObj.toLowerCase() .match(new RegExp(customObj.toLowerCase())) ? regularObj : '[object '+customObj+']'; return chkType ? thisType.toLowerCase().match(chkType.toLowerCase()) ? true : false : thisType; }

Bây giờ bạn có thể kiểm tra bất kỳ loại nào như thế này:

var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String

[Chỉnh sửa tháng 3 năm 2013] Dựa trên thông tin chi tiết tiến bộ Đây là một phương pháp tốt hơn:Edit march 2013] based on progressing insight this is a better method:

Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true

So sánh đầu ra của các phương thức var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 2, var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 3 và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 4 cho ngày.

Nếu giá trị năm, tháng và ngày bằng nhau, thì ngày là ngày hôm nay.

Object.prototype.toString.call(input) === '[object Date]'

Example:

Hàm sử dụng các phương pháp liên quan đến 3 ngày sau:

Ngày.Getlyear Phương thức - Trả về một số bốn chữ số đại diện cho năm tương ứng với một ngày.

Ngày.getMonth - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 5 (tháng 1) và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 6 (tháng 12) và đại diện cho tháng cho một ngày nhất định. Thật không may, phương pháp var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 7 bị tắt bởi var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8.

Example:

Date.getDate - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8 và Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true 0 đại diện cho ngày trong tháng cho một ngày cụ thể.

Nếu các giá trị năm, tháng và ngày của tháng cho ngày hiện tại bằng các giá trị cho ngày được cung cấp, thì ngày hôm nay là ngày hôm nay.

Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Tôi sẽ đi với phương pháp Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true 1, vì nó ngắn gọn và dễ đọc hơn.

Trong hướng dẫn này, chúng tôi đề xuất một số phương thức kiểm tra xem tham số được truyền cho phương thức có phải là ngày hay không.

Có một giải pháp khả thi và có lẽ là giải pháp tốt nhất để kiểm tra lớp của đối tượng:

JavaScript kiểm tra xem một đối tượng có phải là một ngày không

Nhưng nếu bạn muốn kiểm tra xem đó có phải là một ngày không, và không chỉ là một đối tượng có hàm getMonth (), hãy sử dụng các mục sau:

JavaScript kiểm tra xem đó là một ngày

Đặt dt = ngày mới ("14 tháng 4 năm 2020 13:12:00"); hàm isValidDate (value) {let dateWrapper = new date (value); console.log (! isnan (DateWrapper.getDate ())); } isValiddate (DT)

Phần mã đã cho sẽ tạo ra một bản sao của giá trị nếu đó là một ngày hoặc tạo một ngày không hợp lệ. Sau đó, bạn có thể kiểm tra xem giá trị của ngày mới có hợp lệ hay không.

Tất cả các đối tượng có một phương thức toString () được gọi là khi một đối tượng nên được biểu diễn dưới dạng giá trị văn bản hoặc một đối tượng được đề cập theo cách mà một chuỗi được mong đợi. Mỗi đối tượng kế thừa phương thức xuống từ đối tượng. Nếu nó không được ghi đè trong một đối tượng tùy chỉnh, phương thức toString () trả về "[loại đối tượng]", trong đó loại là loại của đối tượng.

Kiểm tra xem ngày hôm nay là ngày hôm nay bằng JavaScript #

Để kiểm tra xem ngày hôm nay có phải là ngày hôm nay không:

  1. Sử dụng hàm tạo Date() để có được ngày hôm nay.
  2. So sánh đầu ra của các phương thức var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 2, var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 3 và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 4 cho ngày.
  3. Nếu giá trị năm, tháng và ngày bằng nhau, thì ngày là ngày hôm nay.

Copied!

function isToday(date) { const today = new Date(); // 👇️ Today's date console.log(today); if (today.toDateString() === date.toDateString()) { return true; } return false; } console.log(isToday(new Date())); // 👉️ true console.log(isToday(new Date('2022-01-21'))); // 👉️ false

Hàm sử dụng các phương pháp liên quan đến 3 ngày sau:

Ngày.Getlyear Phương thức - Trả về một số bốn chữ số đại diện cho năm tương ứng với một ngày.

Ngày.getMonth - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 5 (tháng 1) và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 6 (tháng 12) và đại diện cho tháng cho một ngày nhất định. Thật không may, phương pháp var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 7 bị tắt bởi var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8.

Copied!

// 👇️ Tue Jan 25 2022 console.log(new Date().toDateString());

Date.getDate - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8 và Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true 0 đại diện cho ngày trong tháng cho một ngày cụ thể.

Nếu các giá trị năm, tháng và ngày của tháng cho ngày hiện tại bằng các giá trị cho ngày được cung cấp, thì ngày hôm nay là ngày hôm nay.

Ngoài ra, bạn có thể sử dụng một cách tiếp cận rõ ràng hơn.

Để kiểm tra xem ngày hôm nay có phải là ngày hôm nay không:

  1. Sử dụng hàm tạo Date() để có được ngày hôm nay.
  2. So sánh đầu ra của các phương thức var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 2, var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 3 và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 4 cho ngày.
  3. Nếu giá trị năm, tháng và ngày bằng nhau, thì ngày là ngày hôm nay.

Copied!

function isToday(date) { const today = new Date(); // 👇️ Today's date console.log(today); if ( today.getFullYear() === date.getFullYear() && today.getMonth() === date.getMonth() && today.getDate() === date.getDate() ) { return true; } return false; } console.log(isToday(new Date())); // 👉️ true console.log(isToday(new Date('2022-01-21'))); // 👉️ false

Hàm sử dụng các phương pháp liên quan đến 3 ngày sau:

  • Ngày.Getlyear Phương thức - Trả về một số bốn chữ số đại diện cho năm tương ứng với một ngày.

  • Ngày.getMonth - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 5 (tháng 1) và var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 6 (tháng 12) và đại diện cho tháng cho một ngày nhất định. Thật không may, phương pháp var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 7 bị tắt bởi var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8.Unfortunately, the var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 7 method is off by var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8.

  • Date.getDate - Trả về một số nguyên giữa var myDate = new Date().toString(), myRealDate = new Date(); if (myRealDate.typof('Date')) { /* do things */ } alert( myDate.typof() ); //=> String 8 và Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true 0 đại diện cho ngày trong tháng cho một ngày cụ thể.

Nếu các giá trị năm, tháng và ngày của tháng cho ngày hiện tại bằng các giá trị cho ngày được cung cấp, thì ngày hôm nay là ngày hôm nay.

Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Tôi sẽ đi với phương pháp Object.prototype.is = function() { var test = arguments.length ? [].slice.call(arguments) : null ,self = this.constructor; return test ? !!(test.filter(function(a){return a === self}).length) : (this.constructor.name || (String(self).match ( /^function\s*([^\s(]+)/im) || [0,'ANONYMOUS_CONSTRUCTOR']) [1] ); } // usage var Some = function(){ /* ... */} ,Other = function(){ /* ... */} ,some = new Some; 2..is(String,Function,RegExp); //=> false 2..is(String,Function,Number,RegExp); //=> true 'hello'.is(String); //=> true 'hello'.is(); //-> String /[a-z]/i.is(); //-> RegExp some.is(); //=> 'ANONYMOUS_CONSTRUCTOR' some.is(Other); //=> false some.is(Some); //=> true // note: you can't use this for NaN (NaN === Number) (+'ab2').is(Number); //=> true 1, vì nó ngắn gọn và dễ đọc hơn.

Chủ đề