2014-09-08 17 views
8

Sử dụng ngày góc $filter thực sự tôi có thể nhận được day, year and month hiện tại.Angularjs ngày hôm sau và trước đó, năm, tháng

Nhưng, làm cách nào tôi có thể nhận được day, year, month tiếp theo và trước đó?

Đây là mã tôi đã viết, nhưng tôi không biết bắt đầu từ đâu với

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

Bạn có bất cứ ý tưởng?

+1

bạn có thể sử dụng 'http: // www.datejs.com /' plugin :) hoặc 'http: // momentjs.com/docs/':) –

+0

+1 để sử dụng moment.js, bạn sẽ tiết kiệm thời gian của mình , đơn giản hóa mã của bạn và các thủ thuật chính xác! – benek

+0

@ benek nah i am xây dựng một chỉ thị và nó phải làm việc mà không cần;) – sbaaaang

Trả lời

12

Bạn có thể làm điều đó như thế này, bộ lọc $ date góc không cung cấp cho bạn cách nào dễ dàng hơn, nó chỉ định dạng ngày theo định dạng mong muốn tùy chỉnh.

ngày:

var myDate = new Date(); 

var previousDay = new Date(myDate); 

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

var nextDay = new Date(myDate); 

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

Tháng:

var previousMonth = new Date(myDate); 

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

var nextMonth = new Date(myDate); 

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

Năm:

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'); 

Nếu bạn đang đi để làm điều này rất nhiều, tôi đề nghị bạn tạo một dịch vụ để thực hiện điều này logic.

+0

@Wavy thậm chí bạn biết làm thế nào để tăng tháng ví dụ $ scope.month = $ scope.month + 1? tôi đã thử một cái gì đó như ** $ scope.month = $ filter ('date') (new Date ($ scope.month) .getMonth() + 1, 'MMMM'); ** – sbaaaang

+0

Câu trả lời của tôi cho bạn biết cách: s 'var nextMonth = new Date (ngày); $ scope.nextMonth = $ filter ('date') (nextMonth.setDate (date.getMonth() + 1), 'MMMM') ' – Wawy

+1

Tôi có thể thực hiện công việc này sau khi thay đổi phương thức' getYear() 'thành 'getFullYear()'. 'getYear()' trả về số năm từ năm 1900 và không được dùng nữa. http://stackoverflow.com/a/4754956/3341707 – mistykristie

Các vấn đề liên quan