您好我正在尝试删除第一个日期号码。让我们说今天是5月15日,我将如何
我的小提琴:https://jsfiddle.net/DimitriXd4/gp2eaaot
var now = new Date();
var getTheDate = now.getDate().slice(-1);
console.log(getTheDate );
理论上slice(-1)
应该删除最后一个数字并将其返回,即使它只是一个数字/单词,对吗?
答案 0 :(得分:2)
无需使用slice()
。正如Bergi所建议的那样,通过取余数10来更容易对数字进行操作。
var dateRightDigit = (new Date().getDate() % 10) + "";
console.log(dateRightDigit); // "0" or "1" or ... or "9"
这种使用模数的简单方法更可取,因为当您对字符串进行切片时,需要考虑更多的问题。您必须知道字符串的长度,start
和end
参数的工作方式以及负数的含义。
答案 1 :(得分:1)
试试这个:
Mark: 9
John: 4
James: 0
Mark: 6.333333
John: 3.000000
James: 0.000000
https://jsfiddle.net/gp2eaaot/3/
与结果连接的空字符串,将其转换为字符串,然后允许切片工作
答案 2 :(得分:1)
slice()
是String方法,getDate()没有返回字符串,这就是为什么你不能调用getDate().slice(-1);
您必须将其转换为String,然后使用slice。
例如
var getTheDate = now.getDate().toString().slice(-1);
但它并没有改变原始日期变量,它只会给你切片。如果您想更新日期,请手动执行。
答案 3 :(得分:-1)
其他答案似乎没有考虑单个数字的数字,所以这里是一个检查切片前的日期的函数。
var sliceDate = function(dateObject){
var dateToSlice = dateObject.getDate();
//if the date is a two digit number
if (dateToSlice > 9) { //NOTE we should not have to worry about the date being negative
dateToSlice = dateToSlice.toString().slice(-1); //change to string then slice
}
return Number(slicedDate); //convert back to number and return
};
console.log(sliceDate(new Date())); //will print out 5 if May 5th or 6 if May 16th
修改
这是一个更简洁的版本:
var getTheDate = new Date().getDate();
var slicedDate = (getTheDate > 9) ? Number(getTheDate.toString().slice(-1)) : getTheDate;