Angular data-bs-datepicker指令+日期更改

时间:2015-01-22 09:45:27

标签: javascript jquery angularjs date datepicker

所以我有一份任务清单。 每个任务都有计划的开始日期和计划的结束日期(plannedStartDate / plannedEndDate)。我用ng-repeat来创建我的表。 我需要一个简单的锚点,在点击时触发一个datepicker AND:

  • 将开始日期设置为任务的plannedStartDate(它永远不为null)
  • 绑定到任务的plannedEndDate,因为每当选择一个值时,我必须以某种方式捕获此事件,以便我可以更新任务的DB值(plannedEndDate)。
  • 我必须以格式显示日期:dd / mm / yyyy

BUT:

  • plannedStartDate和plannedEndDate都具有以下格式:2015-01-01T00:00:00.000

目前,我的datepicker看起来像:

         <a href="#" data-bs-datepicker
               data-date-startDate="task.plannedStartDate" data-ng-model="task.plannedEndDate"
               data-date-format="dd/mm/yyyy"
               data-date-type="string">
                {{task | dateIndication}}
            </a>

我尝试过使用和不使用日期格式和日期类型,但似乎都没有帮助我。此外,如果我使用它,开始日期将自动设置为TODAY,即使任务的plannedStartDate不是今天。 (我猜它是一个日期格式化问题?)

我试过把手表放在任务数组上:

$scope.$watch('tasks', function (newVal) { /*...*/ }, true);

(以及使用手表收集等更多变体),但没有!

这种改变根本没有被抓住。

(同样,dateIndication过滤器看起来像:

 .filter('dateIndication', function () {
        return function (task) {
            if (task.plannedEndDate) {
                var plannedEndDate = moment(task.plannedEndDate);
                return plannedEndDate.format('L');
            } else {
                return messages.dashboard.todosAndTasks.noDueDate();
            }
        }
    })

我非常需要一些帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

var change;

change = function(date) {
           var r;
           r = date.match(/^\s*([0-9]+)\s*-\s*([0-9]+)\s*-\s*([0-9]+)(.*)$/);
           return r[2] + "-" + r[3] + "-" + r[1] + r[4];
 };

使用此函数并传递函数调用时的日期它将返回完美的datepicker格式,它显示完全正常,还有一件事你需要在传递日期之前拆分日期然后它工作正常检查并告诉我什么是不同的