получить все дни и даты месяца и года, используя moment.js

Код ниже получен из документа moment.js

moment().date(Number);
moment().date(); // Number
moment().dates(Number);
moment().dates(); // Number

Но тип входных данных parameter – это число вместо краткого названия месяца и года, что соответствует моим требованиям.

Ниже мой формат ввода, как объект массива

`$scope.allMonths = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Act", "Nov", "Dec"];
$scope.Year=2017;// `

Итак, у меня есть месяц и год. Теперь я хочу получить все дни и даты с помощью moment.js


Обновлять:

Я получил точный результат, используя обычный javascript в моем ниже ответе. Но до сих пор не могу найти решение с помощью moment.js


person Ramesh Rajendran    schedule 27.03.2015    source источник
comment
Вы можете сопоставить название месяца с совпадающим номером.   -  person forgivenson    schedule 27.03.2015
comment
Как? можешь показать код?   -  person Ramesh Rajendran    schedule 27.03.2015
comment
Я просмотрел документы для moment.js, и эти функции предназначены для установки и получения текущего дня месяца. Так что я не думаю, что это то, что вы ищете. Кроме того, я действительно не уверен, что вы ищете. Что вы подразумеваете под всеми днями и датами из короткого названия месяца?   -  person forgivenson    schedule 27.03.2015
comment
Я обновил свой вопрос. пожалуйста, теперь смотрите мой вопрос.   -  person Ramesh Rajendran    schedule 27.03.2015
comment
Я до сих пор не понимаю... какой именно результат вы ожидаете?   -  person forgivenson    schedule 27.03.2015
comment
См. ссылку tfs-timetracker.com.   -  person Ramesh Rajendran    schedule 27.03.2015
comment
У меня есть год и месяц, но я не могу получить дни и числа из месяца и года. имеет смысл?   -  person Ramesh Rajendran    schedule 27.03.2015
comment
Я не думаю, что это то, что делает momentjs. Для этого вам придется написать собственный метод. Единственная идея, которая у меня есть, состоит в том, чтобы создать объект Date для первого дня данного месяца и года, получить из него день недели, а затем вывести остальные дни месяца из этого первого.   -  person forgivenson    schedule 27.03.2015


Ответы (2)


function getMonths(month,year){
    var ar = [];
    var start = moment(year+"-"+month,"YYYY-MMM");
    for(var end = moment(start).add(1,'month');  start.isBefore(end); start.add(1,'day')){
        ar.push(start.format('D-ddd'));
    }
    return ar;
}
console.log(getMonths('Mar',2011))
person DanielST    schedule 29.03.2015

Наконец я получил это с помощью javascript

//selected year
$scope.selectedYear = function (value) {
            $scope.selectedYearValue = value;// 2011
        }

   //get days and date from  a month and year
        $scope.getDaysArray = function (month) {// month count is 2              
            var names = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
            var date = new Date($scope.selectedYearValue, month - 1, 1);
            $scope.DayAndDate = [];
            while (date.getMonth() == month - 1) {
                result.push({ "Date": date.getDate(), "Day": names[date.getDay()] });
                $scope.DayAndDate.setDate(date.getDate() + 1);
            }
        }

теперь результат

js> getDaysArray(2012)
["1-wed", "2-thu", "3-fri", "4-sat", "5-sun", "6-mon", "7-tue",
 "8-wed", "9-thu", "10-fri", "11-sat", "12-sun", "13-mon", "14-tue",
"15-wed", "16-thu", "17-fri", "18-sat", "19-sun", "20-mon", "21-tue", 
"22-wed", "23-thu", "24-fri", "25-sat", "26-sun", "27-mon", "28-tue",
"29-wed"]

но я не хочу использовать JavaScript вместо moment.js .

person Ramesh Rajendran    schedule 27.03.2015
comment
Так это результат, который вы хотите? Но вы хотите сделать это с моментом? - person DanielST; 27.03.2015
comment
Да, жду moment.js.. - person Ramesh Rajendran; 28.03.2015