You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS技术求助:获取今日日期并通过ng-repeat展示后续6天

使用AngularJS的ng-repeat展示今日及后续6天日期的解决方案

嘿,我来帮你搞定这个问题!你当前的代码只拿到了今日日期,但还没生成包含后续6天的日期数组,这就是ng-repeat没法正常工作的核心原因。我给你修正并完善了代码,直接就能运行:

完整可运行代码

<!DOCTYPE html>
<html>
<head>
    <title>今日及未来6天日期展示</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
    <script>
        // 定义专属Angular模块,避免全局代码冲突
        var dateApp = angular.module('dateApp', []);
        
        dateApp.controller('dateCtrl', function($scope) {
            $scope.dates = [];
            var today = new Date();

            // 循环生成今日+后续6天的日期数组
            for (var i = 0; i < 7; i++) {
                // 必须创建新的Date实例,否则所有元素会指向同一个日期对象
                var targetDate = new Date(today);
                targetDate.setDate(today.getDate() + i);
                $scope.dates.push(targetDate);
            }
        });
    </script>
</head>
<body ng-app="dateApp">
    <div ng-controller="dateCtrl">
        <h3>今日及未来6天</h3>
        <ul>
            <!-- 用ng-repeat遍历日期数组,借助自带date过滤器格式化显示 -->
            <li ng-repeat="date in dates">
                {{ date | date:'yyyy-MM-dd (EEEE)' }}
            </li>
        </ul>
    </div>
</body>
</html>

关键细节说明

  • 生成独立日期对象:Date是引用类型,如果直接修改同一个today对象,数组里的所有元素最终都会变成最后一天的日期。所以每次循环都要通过new Date(today)复制一个新的日期实例,保证每个元素都是独立的。
  • Angular自带date过滤器:{{ date | date:'格式' }}可以快速格式化日期,比如yyyy-MM-dd是年月日格式,EEEE是完整星期名称,你可以根据需求调整格式(比如改成MM/dd只显示月日)。
  • 规范模块定义:之前的代码用了无模块的ng-app,虽然能运行,但定义专属模块(比如这里的dateApp)是更规范的做法,避免和其他全局代码产生冲突。

内容的提问来源于stack exchange,提问作者user4828683

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:33:22