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ướ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?
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:

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?
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.

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?
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:

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?
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.