Mam widok w angularjs i po prostu próbuję wyświetlić aktualną datę (sformatowaną). Pomyślałem, że coś takiego <span>{{Date.now() | date:'yyyy-MM-dd'}}</span>
powinno wyświetlać aktualną datę.
javascript
angularjs
Evo_x
źródło
źródło
Date.now()
.Date.now()
to funkcja nodeJSOdpowiedzi:
Najpierw musisz utworzyć obiekt daty w kontrolerze:
kontroler:
function Ctrl($scope) { $scope.date = new Date(); }
widok:
<div ng-app ng-controller="Ctrl"> {{date | date:'yyyy-MM-dd'}} </div>
Przykład JSFiddle
Filtr daty kątowej Nr ref
źródło
Możesz to również zrobić za pomocą filtra, jeśli nie chcesz dołączać obiektu daty do bieżącego zakresu za każdym razem, gdy chcesz wydrukować datę:
.filter('currentdate',['$filter', function($filter) { return function() { return $filter('date')(new Date(), 'yyyy-MM-dd'); }; }])
a następnie Twoim zdaniem:
<div ng-app="myApp"> <div>{{'' | currentdate}}</div> </div>
źródło
Szablon
<span date-now="MM/dd/yyyy"></span>
Dyrektywa
.directive('dateNow', ['$filter', function($filter) { return { link: function( $scope, $element, $attrs) { $element.text($filter('date')(new Date(), $attrs.dateNow)); } }; }])
Ponieważ nie możesz uzyskać dostępu do
Date
obiektu bezpośrednio w szablonie (w przypadku rozwiązania wbudowanego), zdecydowałem się na tę dyrektywę. Utrzymuje również kontrolery w czystości i nadaje się do wielokrotnego użytku.źródło
Cóż, możesz to zrobić za pomocą wyrażenia wąsów (
{{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}}
). Wystarczy przypisać obiekt Date do zakresu, w którym chcesz ocenić to wyrażenie.Oto przykład jsfiddle : jsfiddle
Ale nie oczekuj, że automatycznie zaktualizuje wartość. Ta wartość nie jest obserwowana przez kąt, więc musisz wywoływać skrót za każdym razem, gdy chcesz go zaktualizować (na przykład o interwał $) ... co jest marnowaniem zasobów (a także nie jest „zalecane” w dokumentach). Oczywiście możesz użyć kombinacji z dyrektywami / kontrolerami, aby bawić się tylko zakresem podrzędnym (jest zawsze mniejszy niż na przykład rootScope, a skrót będzie szybszy).
źródło
Tylko moje 2 centy na wypadek, gdyby ktoś się na to natknął :)
To, co tu proponuję, będzie miało taki sam skutek, jak obecna odpowiedź, jednak zaleca się napisanie kontrolera w sposób, o którym tutaj wspomniałem.
Odsyłacz przewiń do pierwszej „notatki” (niestety nie ma kotwicy)
Oto zalecany sposób:
Kontroler:
var app = angular.module('myApp', []); app.controller( 'MyCtrl', ['$scope', function($scope) { $scope.date = new Date(); }]);
Widok:
<div ng-app="myApp"> <div ng-controller="MyCtrl"> {{date | date:'yyyy-MM-dd'}} </div> </div>
źródło
Możesz używać
moment()
iformat()
funkcji w AngularJS.Kontroler:
var app = angular.module('demoApp', []); app.controller( 'demoCtrl', ['$scope', '$moment' function($scope , $moment) { $scope.date = $moment().format('MM/DD/YYYY'); }]);
Widok:
<div ng-app="demoApp"> <div ng-controller="demoCtrl"> {{date}} </div> </div>
źródło
<script type="text/javascript"> var app = angular.module('sampleapp', []) app.controller('samplecontrol', function ($scope) { var today = new Date(); console.log($scope.cdate); var date = today.getDate(); var month = today.getMonth(); var year = today.getFullYear(); var current_date = date+'/'+month+'/'+year; console.log(current_date); }); </script>
źródło
Oto próbka Twojej odpowiedzi: http://plnkr.co/edit/MKugkgCSpdZFefSeDRi7?p=preview
<span>Date Of Birth: {{DateOfBirth | date:"dd-MM-yyyy"}}</span> <input type="text" datepicker-popup="dd/MM/yyyy" ng-model="DateOfBirth" class="form-control" />
a następnie w kontrolerze:
$scope.DateOfBirth = new Date();
źródło
Widok
<div ng-app="myapp"> {{AssignedDate.now() | date:'yyyy-MM-dd HH:mm:ss'}} </div>
Kontroler
var app = angular.module ('myapp', [])
app.run(function($rootScope){ $rootScope.AssignedDate = Date; })
źródło
Rozwiązanie podobne do tego z @Nick G. przy użyciu filtra, ale parametrowi znaczenie:
Zaimplementuj filtr o nazwie,
relativedate
który oblicza datę względem aktualnej daty przez dany parametr jako diff. W rezultacie(0 | relativedate)
oznacza dzisiaj i(1 | relativedate)
oznacza jutro..filter('relativedate', ['$filter', function ($filter) { return function (rel, format) { let date = new Date(); date.setDate(date.getDate() + rel); return $filter('date')(date, format || 'yyyy-MM-dd') }; }]);
i twój html:
<div ng-app="myApp"> <div>Yesterday: {{-1 | relativedate}}</div> <div>Today: {{0 | relativedate}}</div> <div>Tomorrow: {{1 | relativedate}}</div> </div>
źródło
Innym sposobem jest: W kontrolerze utwórz zmienną, która będzie przechowywać aktualną datę, jak pokazano poniżej:
var eventsApp = angular.module("eventsApp", []); eventsApp.controller("EventController", function EventController($scope) { $scope.myDate = Date.now(); });
W widoku HTML
<!DOCTYPE html> <html ng-app="eventsApp"> <head> <meta charset="utf-8" /> <title></title> <script src="lib/angular/angular.js"></script> </head> <body> <div ng-controller="EventController"> <span>{{myDate | date : 'yyyy-MM-dd'}}</span> </div> </body> </html>
źródło