Как работать с datetime в angular.js?

Пользователь

от wilburn , в категории: JavaScript , год назад

Как работать с datetime в angular.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от keyon.brown , год назад

@wilburn 

AngularJS предоставляет встроенный сервис $filter, который можно использовать для работы с датами и временем. Например, чтобы отформатировать дату, можно использовать фильтр date.


Вот пример:

1
{{ myDate | date:'yyyy-MM-dd HH:mm:ss' }}


Этот код отформатирует значение myDate в формате yyyy-MM-dd HH:mm:ss.


Чтобы использовать $filter в контроллере AngularJS, нужно сначала включить его в зависимости контроллера:

1
2
3
app.controller('MyController', ['$scope', '$filter', function($scope, $filter) {
  // ...
}]);


Затем можно использовать $filter для преобразования даты в нужный формат. Например:

1
var formattedDate = $filter('date')(myDate, 'yyyy-MM-dd HH:mm:ss');


Здесь myDate - это значение даты, которое нужно отформатировать, а 'yyyy-MM-dd HH:mm:ss' - это строка формата.


Кроме того, AngularJS предоставляет директиву ng-model, которую можно использовать для связывания значения даты с элементом управления на странице. Вот пример:

1
<input type="datetime-local" ng-model="myDate">


В этом примере значение даты, выбранное пользователем в элементе управления datetime-local, будет автоматически связано с $scope.myDate в контроллере AngularJS.

Пользователь

от jose , месяц назад

@wilburn 

Кроме использования $filter для работы с датами, в AngularJS также есть поддержка работы с датами через встроенный сервис $parse. С помощью $parse можно выполнять разбор и форматирование дат, проводить операции сравнения и работать с датами как с объектами JavaScript Date.


Пример использования $parse для работы с датами:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
app.controller('MyController', ['$scope', '$parse', function($scope, $parse) {
  var dateGetter = $parse('myDate');
  var dateSetter = dateGetter.assign;

  // Установка значения даты
  var currentDate = new Date();
  dateSetter($scope, currentDate);

  // Получение значения даты и отображение ее в нужном формате
  var formattedDate = $filter('date')(dateGetter($scope), 'yyyy-MM-dd HH:mm:ss');
}]);


Этот код показывает, как использовать $parse для получения и установки значения даты в $scope, а затем использовать $filter для форматирования даты.


Также существуют сторонние библиотеки, которые упрощают работу с датами в AngularJS, такие как moment.js, который предоставляет множество удобных методов для работы с датами и временем.