我在这个形式的“p + 2”,“p + 1”或“p-1”,“p-2”中获得字符串.P重复当前日期或今天的日期。我想在看到之后添加几天字符串。如果“p + 2”那么我需要添加两天。如果字符串是“p-1”我需要减去一天吗?我们可以使用时刻库。
我尝试这样但是要获得完美的结果?它通过案例一..但案件2失败..为什么? http://codepen.io/anon/pen/RaKKVw
var case1="p+1";
//or
var case2="p-1";
//or
var case3="p";
function getValue(str){
var formatedDate;
if(str.indexOf('+')!==-1){
var i=str.indexOf('+');
formatedDate= moment().add(str.substring(i,str.length), 'days')
}else if(str.indexOf('-')!==-1){
var i=str.indexOf('-');
formatedDate= moment().subtract(str.substring(i,str.length), 'days')
}
return formatedDate;
}
alert(getValue(case2));
答案 0 :(得分:0)
您可以使用像
这样的添加方法
function getDate(string) {
return moment().startOf('day').add(+string.substring(1) || 0, 'day').format('DD-MM-YYYY');
}
snippet.log(getDate('p'))
snippet.log(getDate('p+1'))
snippet.log(getDate('p-1'))

<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.js"></script>
&#13;
答案 1 :(得分:0)
您应该使用str.substring(i+1,str.length)
代替str.substring(i,str.length)