Angularjs - वर्तमान तिथि प्रदर्शित करें


128

मुझे एंगुलरज में एक दृश्य मिला और मैं वर्तमान तिथि (स्वरूपित) प्रदर्शित करने का प्रयास कर रहा हूं। मैंने सोचा <span>{{Date.now() | date:'yyyy-MM-dd'}}</span>कि वर्तमान तिथि को प्रदर्शित करना चाहिए।


यह होगा .. लेकिन यह पता नहीं है Date.now()
putvande

2
तो मैं पहले नियंत्रक में चर उत्पन्न करने के लिए मिला है? मुझे लगा कि वर्तमान तारीख की तरह कुछ आसान होगा :)
Evo_x

1
Date.now()नोडजेएस फ़ंक्शन है
नाय

जवाबों:


229

आपको पहले अपने कंट्रोलर में एक डेट ऑब्जेक्ट बनाना होगा:

नियंत्रक:

function Ctrl($scope)
{
    $scope.date = new Date();
}

राय:

<div ng-app ng-controller="Ctrl">
    {{date | date:'yyyy-MM-dd'}}
</div>

JSFiddle उदाहरण

कोणीय तिथि फ़िल्टर रेफरी


hi @ मुझे वर्तमान सिस्टम समय प्रदर्शित करने के लिए cgi का उपयोग करना है। मैं संभवतः ऐसा कैसे कर सकता हूं? या क्या यह संभव है? धन्यवाद
2

44

आप इसे एक फ़िल्टर के साथ भी कर सकते हैं यदि आप वर्तमान समय में हर बार जब आप तिथि प्रिंट करना चाहते हैं, तो दिनांक ऑब्जेक्ट को संलग्न नहीं करना चाहते हैं:

.filter('currentdate',['$filter',  function($filter) {
    return function() {
        return $filter('date')(new Date(), 'yyyy-MM-dd');
    };
}])

और फिर आपके विचार में:

<div ng-app="myApp">
    <div>{{'' | currentdate}}</div>
</div>

5
वह एक निर्देश भी बना सकता है
arg20

23

खाका

<span date-now="MM/dd/yyyy"></span>

आदेश

.directive('dateNow', ['$filter', function($filter) {
  return {
    link: function( $scope, $element, $attrs) {
      $element.text($filter('date')(new Date(), $attrs.dateNow));
    }
  };
}])

चूँकि आप Dateकिसी टेम्प्लेट (इनलाइन समाधान के लिए) में ऑब्जेक्ट को आसानी से एक्सेस नहीं कर सकते , इसलिए मैंने इस निर्देश को चुना। यह आपके नियंत्रकों को भी साफ रखता है और पुन: प्रयोज्य है।


19

ठीक है, आप इसे मूंछ की अभिव्यक्ति ( {{Date.now() | date:'dd.MM.yyyy HH:mm:ss'}}) के साथ कर सकते हैं । आपको उस दिनांक ऑब्जेक्ट को उस क्षेत्र में निर्दिष्ट करने की आवश्यकता है जहां आप इस अभिव्यक्ति का मूल्यांकन करना चाहते हैं।

यहाँ jsfiddle उदाहरण है: jsfiddle

लेकिन यह स्वचालित रूप से मूल्य अद्यतन करने की उम्मीद नहीं है। यह मान कोणीय द्वारा नहीं देखा जाता है, इसलिए आपको हर बार पाचन को ट्रिगर करना होगा आप इसे अपडेट करना चाहते हैं (उदाहरण के लिए $ अंतराल से) ... जो संसाधनों की बर्बादी है (और डॉक्स में भी "अनुशंसित" नहीं है)। बेशक, आप केवल बच्चे के दायरे के साथ गड़बड़ करने के लिए निर्देशों / नियंत्रकों के साथ संयोजन का उपयोग कर सकते हैं (यह हमेशा के लिए छोटा है उदाहरण के लिए रूटस्स्कोप और पाचन तेज होगा)।


9

बस मेरे 2 सेंट मामले में किसी को इस पर ठोकर :)

मैं यहां जो सुझाव दे रहा हूं, उसका वर्तमान उत्तर के समान परिणाम होगा, लेकिन आपके नियंत्रक को मेरे द्वारा बताए गए तरीके को लिखने की सिफारिश की गई है।

पहले "नोट" पर संदर्भ स्क्रॉल (क्षमा करें, इसमें एंकर नहीं है)

यहाँ अनुशंसित तरीका है:

नियंत्रक:

var app = angular.module('myApp', []);   
app.controller( 'MyCtrl', ['$scope', function($scope) {
    $scope.date = new Date();
}]);

राय:

<div ng-app="myApp">
  <div ng-controller="MyCtrl">
    {{date | date:'yyyy-MM-dd'}}
  </div>
</div>

2

आप AngularJS में उपयोग moment()और format()कार्य कर सकते हैं ।

नियंत्रक:

var app = angular.module('demoApp', []);   
app.controller( 'demoCtrl', ['$scope', '$moment' function($scope , $moment) {
$scope.date = $moment().format('MM/DD/YYYY');
}]);

राय:

<div ng-app="demoApp">
  <div ng-controller="demoCtrl">
    {{date}}
  </div>
</div>

2
<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>


1

राय

<div ng-app="myapp">
{{AssignedDate.now() | date:'yyyy-MM-dd HH:mm:ss'}}
</div>

नियंत्रक

var app = angular.module ('myapp', [])

app.run(function($rootScope){
    $rootScope.AssignedDate = Date;
})

1

फ़िल्टर का उपयोग करके @Nick जी के समान एक समाधान , लेकिन पैरामीटर को सार्थक बनाएं:

एक फिल्टर को लागू करें, relativedateजो दिए गए पैरामीटर के अनुसार वर्तमान तिथि के सापेक्ष तिथि की गणना करता है। नतीजतन, (0 | relativedate)आज का मतलब है और (1 | relativedate)कल का मतलब है।

.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')
  };
}]);

और आपका HTML:

<div ng-app="myApp">
    <div>Yesterday: {{-1 | relativedate}}</div>
    <div>Today: {{0 | relativedate}}</div>
    <div>Tomorrow: {{1 | relativedate}}</div>
</div>

1

ऐसा करने का एक और तरीका है: नियंत्रक में, वर्तमान तिथि को रखने के लिए एक चर बनाएं जैसा कि नीचे दिखाया गया है:

var eventsApp = angular.module("eventsApp", []);
eventsApp.controller("EventController", function EventController($scope) 
{

 $scope.myDate = Date.now();

});

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>

@ बिला, मैंने अपना कोड स्निपेट अपडेट कर लिया है। मुझे उम्मीद है, यह अब अधिक वर्णनात्मक है।
सुनीता
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.