2014-09-08 34 views
8

$filter Açısal tarihini kullanarak, geçerli day, year and month güncel alabilirsiniz.Angularjs bir sonraki ve bir önceki gün, yıl, ay

Ancak, sonraki ve önceki day, year, month'u nasıl alabilirim?

Bu yazdığım kod ama bir fikrin var mı ben nereye

$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... 

ile başlayacağımı bilmiyorum?

+1

moment.js'yi kullanmak için 'http: // www.datejs.com /' plugin :) veya 'http: // momentjs.com/docs /' :) –

+0

+1 kullanabilirsiniz. , kodunuzu ve hileleri doğru bir şekilde basitleştirin! – benek

+0

Benek nah bir yönerge yapıyorum ve yardım almadan çalışmalı;) – sbaaaang

cevap

12

Bunu yapabilirdiniz, açısal tarih $ filtre bunu yapmanın daha kolay bir yolunu sunmaz, sadece istenen bir biçimdeki bir tarihi biçimlendirir.

Gün:

var myDate = new Date(); 

var previousDay = new Date(myDate); 

previousDay.setDate(myDate.getDate()-1); 

var nextDay = new Date(myDate); 

nextDay.setDate(myDate.getDate()+1); 

Ay:

var previousMonth = new Date(myDate); 

previousMonth.setMonth(myDate.getMonth()-1); 

var nextMonth = new Date(myDate); 

nextMonth.setMonth(myDate.getMonth()+1); 

Yıl:

Bunu çok şey yapacaksanız
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'); 

, bunu uygulamak için bir hizmet oluşturmak önermek mantık.

+0

@Wavy Ayı nasıl arttırdığınızı bile biliyor musunuz, örneğin, $ scope.month = $ scope.month + 1? ** $ scope.month = $ filter ('date') (yeni Tarih ($ scope.month) .getMonth() + 1, 'MMMM') gibi bir şey denedim; ** – sbaaaang

+0

Cevabım nasıl söyler: s 'var nextMonth = yeni Tarih (tarih); $ scope.nextMonth = $ filtre ('tarih') (sonrakiMonth.setDate (date.getMonth() + 1), 'MMMM') ' – Wawy

+1

Bu çalışmayı' getYear() 'yöntemini değiştirdikten sonra yapabildim. 'getFullYear() '. 'getYear()', 1900’ten beri geçen yıl sayısını döndürür ve kullanımdan kaldırılır. http://stackoverflow.com/a/4754956/3341707 – mistykristie

İlgili konular