मैं घंटों तक यह पता लगाने के लिए रहा हूं कि कोणीयज में डेटाटाइम को कैसे प्रारूपित किया जाए, लेकिन कोई आसान तरीका नहीं है, बहुत जटिल है। मुझे आश्चर्य है कि अगर वहाँ है।

तो, मेरे पास 2019-06-14 12:15:00 जैसे डेटाटाइम स्ट्रिंग है। मैं इसे 14 Jun 2019 12:15:00 में प्रारूपित करना चाहता हूं। मैंने इसे दृश्य में आजमाया:

{{ '2019-06-14 12:15:00' | date : 'dd MMM yyyy hh:mm:ss' }}

नहीं, यह काम नहीं कर रहा है। मुझे आश्चर्य है कि ऐसा करने का कोई आसान तरीका है या नहीं। हो सकता है कि कोणीय या जावास्क्रिप्ट में कोई अंतर्निहित कार्य हो?

2
Abaij 14 जून 2019, 11:22

2 जवाब

सबसे बढ़िया उत्तर

जैसा कि अन्य ने उल्लेख किया है कि आपकी स्ट्रिंग मान्य दिनांक स्ट्रिंग प्रारूप नहीं है लेकिन यह बहुत करीब है। तो आपके लिए एक आसान समाधान एक नई तिथि वस्तु बनाने के बजाय हो सकता है, आप अपनी स्ट्रिंग को वैध दिनांक स्ट्रिंग में कनवर्ट करने का एक तरीका ढूंढ सकते हैं। आप निम्न कोशिश कर सकते हैं:

{{ data.replace(" ", "T") | date : 'dd MMM yyyy hh:mm:ss' }}

जहां डेटा आपकी तिथि स्ट्रिंग है।

डेमो

0
NTP 14 जून 2019, 12:07

तारीख में हेरफेर करने की कोशिश करते समय - यह बालों वाली और मुश्किल हो सकती है, मुझे आपका दर्द महसूस होता है।

मैं मार्ग पर जाऊंगा और अपना स्वयं का कोणीय फ़िल्टर बनाउंगा, मैंने विशेष रूप से टाइमज़ोन के साथ गंभीर तिथि कार्य के लिए पाया है, कोणीय दिनांक फ़िल्टर में निर्मित उस खुजली को काफी खरोंच नहीं करता है। मुझे पल.जेएस और पल.जेएस टाइमज़ोन का उपयोग करने में बहुत लाभ मिला है

https://momentjs.com/

पल की सुंदरता यह है कि जब यह तारीख पार्सिंग और बहुत लचीला होता है तो यह बहुत भारी भारोत्तोलन करता है। यहाँ एक फ़िल्टर का उदाहरण दिया गया है जो मेरी ज़रूरतों के अनुकूल है और आपकी आवश्यकताओं के अनुरूप हो सकता है:

angular.module("global-app")
.filter('datetz', function ($filter) {
    return function (date, dateFormat, timeZone) {
        let new_date = date;
        if (new_date == null) return null;
        // Default timezone to Sydney if none selected
        if (timeZone == null) timeZone = "Australia/Sydney";
        if (new_date && timeZone) {
            new_date = moment.tz(new_date, timeZone);
            timeZone = new_date.format('Z');
            new_date = new_date.toDate();
        }
        return $filter('date')(new_date, dateFormat, timeZone);
    }
});

इसके प्रयेाग के लिए:

{{ "2019-06-12 05:00" | datetz: "dd MMM yyyy hh:mm:ss": "America/Detroit" }}

डिफ़ॉल्ट कोणीय फ़िल्टर की अपेक्षा "+10:00" प्रारूप के बजाय टाइमज़ोन के लिए TZ डेटाबेस नाम का उपयोग करने का लाभ यह है कि आपको यह जानना होगा कि यह +10 है और आपके द्वारा डालने की तारीख के लिए +11 नहीं है। , जबकि TZ डेटाबेस नाम का उपयोग करने से टाइमज़ोन ऑफ़सेट गणना स्वचालित रूप से उस तिथि के आधार पर हो जाएगी, जो आपके द्वारा TZ डेटाबेस का उपयोग करके उस क्षण प्रदान की जाती है।

मुझे पता है कि आपने इसके लिए नहीं कहा था, लेकिन सोचा कि यह अभी भी आपके और अन्य लोगों के लिए फायदेमंद होगा जो इस पर ठोकर खा सकते हैं।

हैप्पी कोडिंग

1
Omar 14 जून 2019, 12:05