【问题标题】:get all days and dates from month and year using moment.js [duplicate]使用moment.js获取月份和年份的所有日期和日期[重复]
【发布时间】:2015-03-27 16:54:55
【问题描述】:

以下代码来自 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 获取所有日期和日期


更新:

我在下面的Answer 中使用普通的javascript 得到了准确的结果。但仍然无法通过使用 moment.js 找到解决方案

【问题讨论】:

  • 您可以将月份的名称映射到一致的数字。
  • 怎么样?你能给我看看代码吗?
  • 我查看了 moment.js 的文档,这些函数用于设置和获取当前日期。所以我认为这不是你要找的。另外,我真的不确定你在找什么。 “短月份名称中的所有日期和日期”是什么意思?
  • 我已经更新了我的问题。现在请看我的问题。
  • 我还是不明白...您期望的确切输出是什么?

标签: javascript angularjs momentjs


【解决方案1】:
  • Parse 基于年月的日期
  • 循环整个月,formatting 每天进入一个数组。

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

【讨论】:

    【解决方案2】:

    我终于通过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

    【讨论】:

    • 这就是你想要的结果?但是你想用那一刻来做吗?
    • 是的,我正在等待moment.js ..
    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 2017-01-27
    • 1970-01-01
    • 2021-12-16
    • 2021-05-11
    • 1970-01-01
    相关资源
    最近更新 更多