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'); 我的回答告诉你如何:s var nextMonth = new Date(date); $scope.nextMonth = $filter('date')(nextMonth.setDate(date.getMonth()+1), 'MMMM') 在将 getYear() 方法更改为 getFullYear() 后,我能够完成这项工作。 getYear() 返回自 1900 年以来的年数,已弃用。 ***.com/a/4754956/3341707

以上是关于Angularjs下一天和前一天,年,月的主要内容,如果未能解决你的问题,请参考以下文章

JAVA获取前一个月的第一天和最后一天

如何获得一个月内每周的第一天和最后一天?

获得指定日期上一天和下一天

Oracle SQL日期获取上个季度的第一天和上个季度的最后一天

比较当月的一天和上个月的同一天PostgreSQL

python怎么获得每个月的第一天和最后一天