日期.解析angular表达式中的工作

Does Date.parse work inside angular expression?

本文关键字:工作 表达式 解析 angular 日期      更新时间:2023-09-26

我有以下代码:

function Ctrl($scope)
{
    $scope.dt = new Date('2012-07-16T00:00:00');
    var format = 
    {
    	day: '2-digit',
      month: '2-digit',
      year: 'numeric'
    };
    $scope.dateTimeFormatter = Intl.DateTimeFormat('es-es', format);
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="Ctrl">
In: {{dt}} <br/> 
Angular: {{dt | date:'yyyy-MM-dd HH:mm:ss Z'}}
  <div style="background-color:lightgreen;">
    This works: {{dateTimeFormatter.format(dt)}}
  </div>
  <div style="background-color:rgb(251, 123, 89);">
    This doesn't: {{dateTimeFormatter.format(Date.parse('2012-07-16T00:00:00'))}}
  </div>
</div>

有人知道我做错了什么吗?

或者为什么绿线像预期的那样工作,而红线却不行?

尝试在scope ($scope. date)中查找Date,但是ofc没有找到。

添加
$scope.Date = Date;

,它会工作:

function Ctrl($scope)
{
    $scope.dt = new Date('2012-07-16T00:00:00');
    var format = 
    {
    	day: '2-digit',
      month: '2-digit',
      year: 'numeric'
    };
    $scope.dateTimeFormatter = Intl.DateTimeFormat('es-es', format);
    $scope.Date = Date;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="Ctrl">
In: {{dt}} <br/> 
Angular: {{dt | date:'yyyy-MM-dd HH:mm:ss Z'}}
  <div style="background-color:lightgreen;">
    This works: {{dateTimeFormatter.format(dt)}}
  </div>
  <div style="background-color:rgb(251, 123, 89);">
    This doesn't?: {{dateTimeFormatter.format(Date.parse('2012-07-16T00:00:00'))}}
  </div>
</div>

您的dateTimeFormatter.format期望Date对象-并且您使用number调用它,因为"The date .parse()方法解析日期的字符串表示形式,并返回自1970年1月1日00:00:00 UTC以来的毫秒数" (mdn)。