Angularjs下一天和前一天,年,月
Posted
技术标签:
【中文标题】Angularjs下一天和前一天,年,月【英文标题】:Angularjs next and previous day,year,month 【发布时间】:2014-11-01 09:30:25 【问题描述】:使用 Angular 日期 $filter
实际上我可以得到当前的 day, year and month
。
但是,我怎样才能得到下一个和上一个day, year, month
?
这是我写的代码,但我不知道从哪里开始
$scope.month = $filter('date')(date, 'MMMM');//December-November like
$scope.day = $filter('date')(date, 'dd'); //01-31 like
$scope.year = $filter('date')(date,'yyyy');//2014 like
$scope.nextYear = Number($scope.year) + 1;
$scope.prevYear = Number($scope.year) - 1;
$scope.nextDay = ?
etc...
你有什么想法吗?
【问题讨论】:
你可以使用http://www.datejs.com/
插件:)或http://momentjs.com/docs/
:)
+1 用于使用 moment.js,您将节省时间、简化代码并正确使用技巧!
@benek nah 我正在构建一个指令,它必须在没有帮助的情况下工作;)
【参考方案1】:
您可以这样做,角度日期 $filter 并没有为您提供任何更简单的方法,它只是以自定义的所需格式格式化日期。
日期:
var myDate = new Date();
var previousDay = new Date(myDate);
previousDay.setDate(myDate.getDate()-1);
var nextDay = new Date(myDate);
nextDay.setDate(myDate.getDate()+1);
月份:
var previousMonth = new Date(myDate);
previousMonth.setMonth(myDate.getMonth()-1);
var nextMonth = new Date(myDate);
nextMonth.setMonth(myDate.getMonth()+1);
年份:
var previousYear = new Date(myDate);
previousYear.setYear(myDate.getFullYear()-1);
var nextYear = new Date(myDate);
nextYear.setYear(myDate.getFullYear()+1);
$scope.month = $filter('date')(myDate, 'MMMM');//December-November like
$scope.day = $filter('date')(myDate, 'dd'); //01-31 like
$scope.year = $filter('date')(myDate,'yyyy');//2014 like
$scope.nextDay = $filter('date')(nexyDay, 'dd');
$scope.prevDay = $filter('date')(previousDay, 'dd');
$scope.nextMonth = $filter('date')(nextMonth, 'MMMM')
$scope.prevMonth = $filter('date')(previousMonth, 'MMMM')
$scope.nextYear = $filter('date')(nextYear,'yyyy');
$scope.prevYear = $filter('date')(previousYear,'yyyy');
如果你要经常这样做,我建议你创建一个服务来实现这个逻辑。
【讨论】:
@Wavy 你甚至知道如何增加月份,例如 $scope.month = $scope.month+1 吗?我尝试了类似 $scope.month = $filter('date')(new Date($scope.month).getMonth()+1, 'MMMM'); 我的回答告诉你如何:svar nextMonth = new Date(date); $scope.nextMonth = $filter('date')(nextMonth.setDate(date.getMonth()+1), 'MMMM')
在将 getYear()
方法更改为 getFullYear()
后,我能够完成这项工作。 getYear()
返回自 1900 年以来的年数,已弃用。 ***.com/a/4754956/3341707以上是关于Angularjs下一天和前一天,年,月的主要内容,如果未能解决你的问题,请参考以下文章