टाइमस्टैम्प प्रारूप को 'एब्सोल्यूट' पर सेट करते समय, fr-FR पर सेट लोकेल के साथ वेबचैट, ग्लोबलाइज़ज लाइब्रेरी के 'शॉर्ट' टाइम फॉर्मेट का उपयोग करते हुए टाइमस्टैम्प के समय भाग को 8:36 AM पर प्रिंट करता है। देखें: https://github.com/ Globalizejs/globalize/blob/master/doc/api/date/date-formatter.md

क्या मैं 24 घंटे के नोटेशन में समय प्रदर्शित करने के लिए समय प्रारूप को ओवरराइड कर सकता हूं, यानी 8:36 पूर्वाह्न के बजाय 8 घंटे 36 प्रिंट करने के लिए?

वेब चैट को जावास्क्रिप्ट का उपयोग करके एक वेबपेज में एकीकृत किया गया है (प्रतिक्रिया नहीं): v. 4.8.1, https://cdn.botframework.com/botframework- वेबचैट/नवीनतम/वेबचैट.जेएस

timestamp format

3
UncleZen 13 मई 2020, 15:46

2 जवाब

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

यदि आप वेब चैट के गैर-प्रतिक्रिया संस्करण का उपयोग कर रहे हैं, तो नहीं, टाइमस्टैम्प को अपडेट करने या बदलने के लिए कोई अंतर्निहित विधि नहीं है।

हालांकि, आप HTML तत्व को अधिलेखित करने के लिए गतिविधि के टाइमस्टैम्प तक पहुँचने के लिए वेब चैट के store का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है। मेरा उदाहरण केवल समय के साथ तत्व को अद्यतन कर रहा है। आप किसी भी अन्य बिट्स (दिनांक, दिन, समय ऑफ़सेट, आदि) को कैप्चर करने के लिए कार्यक्षमता जोड़ना चाहेंगे।

इसके अलावा, आपको वेब चैट द्वारा समय तत्व के इन-बिल्ट ऑटो-अपडेटिंग के लिए खाते की आवश्यकता होगी। उदाहरण के लिए, जब किसी गतिविधि के आने के बाद एक मिनट बीत जाता है, तो समय तत्व "1 मिनट पहले" में बदल जाता है, फिर "2 मिनट पहले" हो जाता है, और इसी तरह।

आप एक ईवेंट श्रोता का उपयोग करने में सक्षम हो सकते हैं जो समय तत्व में परिवर्तन की तलाश करता है, जो ट्रिगर होने पर, आपकी आवश्यकताओं के अनुरूप समय तत्व को अपडेट करना जारी रखता है।

कृपया ध्यान दें: DOM में सीधे तौर पर हेर-फेर करने में अंतर्निहित जोखिम होते हैं। सबसे बड़ा जोखिम यह है कि आपका बॉट ब्रेकिंग परिवर्तनों के अधीन हो जाता है, अगर वेब चैट टीम भविष्य में कुछ अंतर्निहित घटक को अपडेट करने, हटाने या अन्यथा बदलने का निर्णय लेती है। मैं अनुशंसा करता हूं कि आप वेब चैट के रिएक्ट संस्करण पर स्विच करने पर विचार करें, जो कई अन्य विशेषताओं के साथ, वेब चैट के स्थान के भीतर कार्य करते समय इस परिवर्तन की अनुमति देता है।

अंत में, पृष्ठ का कोई भी रीफ्रेशिंग समय तत्वों को वापस वेब चैट डिफ़ॉल्ट पर रीसेट कर देगा (यदि आपके पास पूरे सत्रों में लगातार चैट के लिए अपना बॉट सेटअप है)।

<script>
  ( async function () {

    const store = window.WebChat.createStore( {}, ({dispatch}) => next => action => {
      if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
        const { activity } = action.payload;
        if (activity.type === 'message') {
          console.log('MESSAGE ', activity);
          setTimeout(() => {
            const webChatRow = document.querySelectorAll('.webchat__row');
            const rowLen = webChatRow.length;
            const timeParent = webChatRow[ rowLen - 1 ].children;
            let timeText = timeParent[ 0 ].children[ 1 ].innerText;
            let time = new Date(activity.timestamp);
            let hours = time.getHours();
            let mins = time.getMinutes();
            timeParent[ 0 ].children[ 1 ].innerText = `${hours}:${mins}`
            console.log(timeText)
          }, 300);
        }
      }
      next(action);
    } );

    const res = await fetch( 'http://localhost:3500/directline/token', { method: 'POST' } );
    const { token } = await res.json();

    window.WebChat.renderWebChat(
      {
        directLine: window.WebChat.createDirectLine( {
          token: token
        } ),
        store: store
      },
      document.getElementById( 'webchat' )
    );

    document.querySelector( '#webchat > *' ).focus();
  } )().catch( err => console.error( err ) );
</script>

enter image description here

मदद की आशा!

2
Steven Kanberg 16 मई 2020, 04:16

कस्टमाइज़ करें पर एक नज़र डालें गतिविधि स्थिति वेब चैट नमूना। यह दिखाता है कि आप टाइमस्टैम्प को अनुकूलित करने के लिए activityStatusMiddleware का उपयोग कैसे कर सकते हैं।

0
tdurnford 21 मई 2020, 20:11