प्रारूप समय AngularJS में


123

मैं AngularJS में दिनांक और समय को ठीक से कैसे प्रदर्शित करूँ?

नीचे दिए गए आउटपुट में इनपुट और आउटपुट दोनों को दिखाया गया है, साथ और बिना AngularJS डेट फ़िल्टर के:

In: {{v.Dt}}  
AngularJS: {{v.Dt | date:'yyyy-MM-dd HH:mm:ss Z'}}

यह प्रिंट:

In: 2012-10-16T17:57:28.556094Z 
AngularJS: 2012-10-16T17:57:28.556094Z

वांछित प्रदर्शन प्रारूप 2010-10-28 23:40:23 0400या है2010-10-28 23:40:23 EST

जवाबों:


63

v.Dt संभवतः दिनांक () ऑब्जेक्ट नहीं है।

Http://jsfiddle.net/southerd/xG2t8/ देखें

लेकिन आपके नियंत्रक में:

scope.v.Dt = Date.parse(scope.v.Dt);

डेविड मेरे केस की तारीख को डेटाबेस में DD / MM / YYYY प्रारूप में संग्रहीत किया गया है। मैं रूपांतरित करता हूं कि मैं इसे टेक्स्ट बॉक्स में उपयोगकर्ता DD.MM.YYYY प्रारूप दिखाता हूं या उस प्रारूप में उपयोगकर्ता इनपुट लेता हूं और वही मेरे मॉडल में अपडेट हो जाता है। कैसे इसे बदलने से पहले इसे DB में पास किया जाए। मुझे कैसे बदलना चाहिए
योगेश

120

आपका कोड काम करना चाहिए क्योंकि आपके पास यह फिडल है

आपको यह सुनिश्चित करना होगा कि आपके काम करने के लिए यह v.Dtएक उचित दिनांक ऑब्जेक्ट है, हालांकि।

{{dt | date:'yyyy-MM-dd HH:mm:ss Z'}}

या यदि dateFormat को गुंजाइश के रूप में परिभाषित किया जाता है तो DateFormat = 'yyyy-MM-dd HH: mm: ss Z':

{{dt | date:dateFormat }}

जैसा कि प्रारूप एक कॉस्मेटिक विकल्प है, यह आम तौर पर दृश्य पर सीधे ऐसा करने के लिए एक बेहतर विचार है।
पूस

thnkx..super ans। क्या 12 घंटे के प्रारूप में समय दिखाना संभव है?
विष्णु प्रसाद

dt पूर्णांक प्रारूप कार्यों में एक यूनिक्स टाइमस्टैम्प भी हो सकता है
tom10271

Dateचर के लिए एक प्रकार का होना आवश्यक नहीं है । समय-चिह्न लंबे बहुत अच्छा काम करता है
Vlad

59

मुझे पता है कि यह एक पुरानी वस्तु है, लेकिन मैंने सोचा था कि मैं विचार करने के लिए किसी अन्य विकल्प को फेंक दूंगा।

जैसा कि मूल स्ट्रिंग में "T" डेमोकार शामिल नहीं है, कोणीय में डिफ़ॉल्ट कार्यान्वयन इसे दिनांक के रूप में नहीं पहचानता है। आप इसे नई तिथि का उपयोग करने के लिए बाध्य कर सकते हैं, लेकिन यह एक सरणी पर थोड़ा सा दर्द है। चूँकि आप फ़िल्टर को एक साथ पाइप कर सकते हैं, आप अपने इनपुट को किसी दिनांक में परिवर्तित करने के लिए फ़िल्टर का उपयोग करने में सक्षम हो सकते हैं और फिर दिनांक लागू करें: परिवर्तित दिनांक पर फ़िल्टर करें। एक नया कस्टम फ़िल्टर इस प्रकार बनाएँ:

app
.filter("asDate", function () {
    return function (input) {
        return new Date(input);
    }
});

फिर अपने मार्कअप में, आप फ़िल्टर को एक साथ पाइप कर सकते हैं:

{{item.myDateTimeString | asDate | date:'shortDate'}}

हाँ, अधिक विश्वसनीय और कुशल .. साझा करने के लिए धन्यवाद
azhar_SE_nextbridge

56

आप इस तरह 'दिनांक' फ़िल्टर प्राप्त कर सकते हैं:

var today = $filter('date')(new Date(),'yyyy-MM-dd HH:mm:ss Z');

यह आपको आज की तारीख को आपके इच्छित प्रारूप में दे देगा।


योग्य हाँ, लिएंड्रो। मुझे नहीं पता कि इसे कैसे मिला। मुझे लगता है कि मैं 'उपयोग' सोच रहा था।
कोडओवरराइड

49

यहाँ एक फ़िल्टर है जो एक तारीख स्ट्रिंग या जावास्क्रिप्ट तिथि () ऑब्जेक्ट लेगा। यह Moment.js का उपयोग करता है और किसी भी Moment.js के ट्रांसफ़ॉर्म फ़ंक्शन को लागू कर सकता है , जैसे कि लोकप्रिय 'fromNow'

angular.module('myModule').filter('moment', function () {
  return function (input, momentFn /*, param1, param2, ...param n */) {
    var args = Array.prototype.slice.call(arguments, 2),
        momentObj = moment(input);
    return momentObj[momentFn].apply(momentObj, args);
  };
});

इसलिए...

{{ anyDateObjectOrString | moment: 'format': 'MMM DD, YYYY' }}

11 नवंबर 2014 को प्रदर्शित होगा

{{ anyDateObjectOrString | moment: 'fromNow' }}

10 मिनट पहले प्रदर्शित होगा

यदि आपको कई पल के कार्यों को कॉल करने की आवश्यकता है, तो आप उन्हें चेन कर सकते हैं। यह यूटीसी और फिर प्रारूप में परिवर्तित होता है ...

{{ someDate | moment: 'utc' | moment: 'format': 'MMM DD, YYYY' }}

https://gist.github.com/cmmartin/341b017194bac09ffa1a


यह अधिक शक्तिशाली विधि है ! धन्यवाद!
मोडल

2
यह शानदार है और इसे मोमेंटम टाइमज़ोन के साथ भी जोड़ा जा सकता है। उदा: {{foo.created_at | पल: 'tz': 'अमेरिका / New_York' | पल: 'प्रारूप': 'एच: मिमी ए जेड'}}
डेव कॉलिन्स

22

यहाँ कुछ लोकप्रिय उदाहरण हैं:

<div>{{myDate | date:'M/d/yyyy'}}</div> 2014/07/04

<div>{{myDate | date:'yyyy-MM-dd'}}</div> 2014-07-04

<div>{{myDate | date:'M/d/yyyy HH:mm:ss'}}</div> 7/4/2014 12:01:59


सरल, सुरुचिपूर्ण और वास्तव में क्या पूछा गया था
इग्नोटस

15

क्या आपने दस्तावेज़ के लेखन निर्देश (लघु संस्करण) अनुभाग देखा है ?

एचटीएमएल

<div ng-controller="Ctrl2">
      Date format: <input ng-model="format"> <hr/>
      Current time is: <span my-current-time="format"></span>
</div> 

जे एस

function Ctrl2($scope) {
  $scope.format = 'M/d/yy h:mm:ss a';
}

2
मुझे लगता है कि आपकी टिप्पणी बहुत मान्य है। फिल्टर करना सीखना AngularJS का एक अनिवार्य हिस्सा है। यह वास्तव में मुश्किल नहीं है।
स्पॉक

6

एक कंट्रोलर के अंदर फॉरमेट को फ़िल्टर को $ फ़िल्टर करके फ़िल्टर किया जा सकता है।

var date = $filter('date')(new Date(),'MMM dd, yyyy');

5

सरलता से अगर आप "Jan 30, 2017 4:31:20 PM" जैसे आउटपुट देना चाहते हैं तो सरल स्टेप फॉलो करें

Step1- js कंट्रोलर में वेरिएबल को फॉलो करके डिक्लेयर करें

$scope.current_time = new Date();

step2- html पेज में प्रदर्शित करें जैसे

{{एक करंट_टाइम | तारीख: 'मध्यम'}}


5

हम कोणीय में दृश्य पक्ष पर तारीख को प्रारूपित कर सकते हैं बहुत आसान है .... कृपया नीचे दिए गए उदाहरण की जांच करें:

{{dt | दिनांक: "dd-MM-yyyy"}}


3

आप momentjsएंगुलरज में डेट-टाइम फ़िल्टर लागू करने के लिए उपयोग कर सकते हैं । उदाहरण के लिए:

angular.module('myApp')
 .filter('formatDateTime', function ($filter) {
    return function (date, format) {
        if (date) {
            return moment(Number(date)).format(format || "DD/MM/YYYY h:mm A");
        }
        else
            return "";
    };
});

जहां तारीख समय स्टाम्प प्रारूप में है।


1

$filterनियंत्रक में निर्भरता जोड़ें ।

var formatted_datetime = $filter('date')(variable_Containing_time,'yyyy-MM-dd HH:mm:ss Z')

2
हालांकि यह कोड स्निपेट प्रश्न को हल कर सकता है, जिसमें स्पष्टीकरण सहित वास्तव में आपकी पोस्ट की गुणवत्ता में सुधार करने में मदद करता है। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, और उन लोगों को आपके कोड सुझाव के कारणों का पता नहीं चल सकता है। कृपया अपने कोड को व्याख्यात्मक टिप्पणियों के साथ भीड़ देने की कोशिश न करें, इससे कोड और स्पष्टीकरण दोनों की पठनीयता कम हो जाती है!
kayess

0

मैं आपको सुझाव दूंगा कि आप क्षणों का उपयोग करें। क्योंकि यह स्थानों के अनुसार दिनांक स्वरूपण के लिए एक अच्छा समर्थन मिला है।

एक फ़िल्टर बनाएं जो प्रारूपण तिथि के लिए आंतरिक रूप से क्षण.जैस पद्धति का उपयोग करता है।

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