首页 > 解决方案 > Javascript Uncaught TypeError:.split 不是函数

问题描述

我想制作一个用户每天只能领取一次硬币的功能。我做了这个功能.split,所以它只比较日期,因为Date()只比较日期和时间。但是,我收到了这个 javascript 错误:

Uncaught TypeError (intermediate value).split 不是函数

任何人都知道如何解决这个问题?我已经尝试了很多方法。错误仍然存​​在。

这是我的代码:

$(document).ready(function () {
  if (new Date(model[0].lastClaimedDate).split(' ')[0] < new Date().split(' ')[0]) {
    document.getElementById('btnAddCoins').disabled = false;
  }
  else {
    document.getElementById('btnAddCoins').disabled = true;
  }   
})

标签: javascript

解决方案


问题

var date = new Date();

var claimedDate = new Date(date.setDate(date.getDate()-1)) ;
var todaysDate = new Date()


// converting toString and splitting up

claimedDate = claimedDate.toDateString().split(" ");

todaysDate = new Date().toDateString().split(" ");

// result date with array of Day, MonthName, Date and Year

console.log("claimed date", claimedDate)
console.log("todays date", todaysDate)

`var d = new Date();` // Todays date

如果您执行d.split(" "):: 会给您一个错误 d.split 不是函数

您可以将其拆分为// 为您提供["Fri", "Sep", "28", "2018"]d.toDateString().split(" ")数组

使用上述内容,您可以检查上一个日期

您可以检查toDateString 方法,现在该数组由日、月、日和年组成。因此,您可以检查上一个日期,并且可以禁用或启用该按钮。

更好的解决方案

不用转成String和split,直接查看两个日期即可,查看解决方案

解决方案

$(document).ready(function () {
  var date = new Date();

  var lastClaimedDate = new Date(date.setDate(date.getDate() -  1 )); 
  
  var currentDate = new Date();
  

  if(lastClaimedDate < currentDate){
    $("#btnAddCoins").prop("disabled", true)
  }else{
    $("#btnAddCoins").prop("disabled", false)
  }
  
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnAddCoins">Add Coins</button>


推荐阅读