getDate() slice() confusion
getDate() slice() confusion
你好,我正在尝试删除日期的第一个数字。假设今天是5月15日,我将如何
- 去掉第一个整数,只保留5
- 确保个位数(6月5日前)保持不变?我尝试了slice属性,但似乎不起作用
我的技巧:https://jsfiddle.net/DimitriXd4/gp2eaaot
var now = new Date();
var getTheDate = now.getDate().slice(-1);
console.log(getTheDate );
理论上,slice(-1)
应该剪切最后一个数字并返回它,即使它是单个数字/单词,对吧?
slice()
是String方法,getDate()不返回String,这就是为什么不能调用getDate().slice(-1);
您必须将其转换为字符串,然后使用slice。例如
var getTheDate = now.getDate().toString().slice(-1);
但它不会更改原始日期变量,只会给您一个切片字符串。如果你想更新日期,你应该手动更新。
不需要使用slice()
。正如Bergi所建议的,通过取余数模10来运算这个数字更容易。
var dateRightDigit = (new Date().getDate() % 10) + "";
console.log(dateRightDigit); // "0" or "1" or ... or "9"
这种使用模的更简单的方法更可取,因为当您对字符串进行切片时,需要考虑更多的问题。您必须知道字符串有多长,start
和end
参数是如何工作的,以及负数的含义。
试试这个:
var now = new Date();
var getTheDate = (now.getDate() + "").slice(-1);
console.log(getTheDate );
空字符串与结果连接,将其转换为字符串,然后允许切片在中工作
其他答案似乎不考虑个位数,所以这里有一个函数可以在切片前检查日期。
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;
相关文章:
- 使用angularjs数组中的slice
- 使用.slice分页选择了太多项目
- getDate() slice() confusion
- 转换类似数组的对象Array.prototype.slice或Array.from
- 具有负值的Javascript字符串.slice()
- 为什么要将Array.prototype.slice.call与参数一起使用
- Array.slice on array with one element
- 将 JavaScript Array.slice + 隐式扩展转换为 C++ vector
- Javascript:使用 slice() 从数组中选择除一个项目之外的所有项目
- [].slice vs Array.prototype.slice
- 函数与使用slice的参数一起应用
- Jquery使用Slice将前N个元素包装成一个新元素,并将其余N个元素打包成另一个新元素
- NodeJS buffer.slice()不是函数
- Array.prototype.slice.call如何在getElementsByClassName的重新创建中工作
- 限制使用slice函数自动完成jquery ui的结果数
- KendoUI TreeView试图将脏属性添加到Poco并获取Uncaught TypeError:e.slice不是
- 为什么Javascript库对数组方法(push,slice等)有本地引用
- the meaning of jQuery javascript: Array.prototype.slice.call
- jQuery slice() 方法 在 html 中选择元素(第一个/最后一个)
- 在 .slice 之后重置 JSON 数组