मैंने हाल ही में जावास्क्रिप्ट सीखना शुरू किया है, इसलिए शुरुआती प्रश्न के लिए मैं क्षमा चाहता हूं। मैं जो करने की कोशिश कर रहा हूं वह उस सेंटडेट को बदल रहा है जिसे मैं बाहरी JSON फ़ाइल के माध्यम से अधिक पठनीय डीडी/एमएम/yyyy प्रारूप में एक्सेस कर रहा हूं। मैंने एक लूप बनाया है, और यहां बदलाव करने की कोशिश की है, लेकिन यह व्यवहार नहीं कर रहा है कि इसे कैसा होना चाहिए।

यह मेरी JSON फ़ाइल है:

[
{
   "Name":"John Smith",
   "FromName":"Peter A",
   "FromEmail":"test@notreal.com",
   "ReplyTo":"test@notreal.com",
   "SentDate":"2020-11-11 19:21:00",


},
{
    "Name":"Jane Doe",
   "FromName":"Bob Richards",
   "FromEmail":"test2@notreal.com",
   "ReplyTo":"test2@notreal.com",
   "SentDate":"2019-11-11 19:21:00",
}

]

यह मेरा जावास्क्रिप्ट है:

var request = new XMLHttpRequest();
  request.open("GET","data/informationdata.json", false);
  request.send(null);
  var abcPre = JSON.parse(request.responseText);  
  console.log("type of data: "+typeof(abcPre));
  
  for(var i = 0; i < abcPre.length;i++){
    if (abcPre.SentDate = [] ){
      abcPre.SentDate = new Date (SentDate).toLocaleDateString("en-GB").split("-");
      console.log(abcPre[i].SentDate);
     }

  }

क्या कोई कृपया यह बताने में मदद कर सकता है कि मैं तारीख बदलने की कोशिश में कहां गलत हो रहा हूं?

अग्रिम धन्यवाद।

संपादित करें: यहां संशोधित कोड है, जो अब कम से कम कुछ लौटा रहा है। परिणाम 'अमान्य तिथि' है लेकिन इसकी प्रगति:

 var request = new XMLHttpRequest();
  request.open("GET","data/informationdata.json", false);
  request.send(null);
  var abcPre = JSON.parse(request.responseText);  
  console.log("type of data: "+typeof(abcPre));
  
  for(var i = 0; i < abcPre.length;i++){
    if (abcPre.SentDate = [] ){
      abcPre[i].SentDate = new Date (abcPre.SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

  }

फिर से धन्यवाद।

1
pixelcreated 17 जिंदा 2021, 15:47
.toLocaleDateString("en-GB") के परिणाम में कोई "-" नहीं है: 11/11/2019
 – 
pilchard
17 जिंदा 2021, 15:53
क्या आपका लूप भी काम कर रहा है? जो मैं समझता हूं, abcPre आपके अनुरोध का परिणाम है, इसलिए आपकी वस्तु की सरणी। जिसका मतलब abcPre.SentDate आपके if स्टेटमेंट पर मौजूद नहीं है, जबकि abcPre[i].SentDate करते हैं।
 – 
Waytaria
17 जिंदा 2021, 15:59
नमस्ते। अच्छा उठा। मैंने अब पहली पोस्ट में अपना कोड अपडेट कर लिया है। मुझे लगता है कि मुझे अब बस इतना करना है कि नया दिनांक प्रारूप वास्तव में कुछ ऐसा हो जो 'अमान्य तिथि' के बजाय काम करेगा। मैंने Date.now() के साथ परीक्षण किया जो परिणाम देता है। जाहिर तौर पर सही नहीं है, लेकिन कम से कम इसकी प्रगति सही दिशा में है।
 – 
pixelcreated
17 जिंदा 2021, 16:26

3 जवाब

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

समाधान के साथ मेरी मदद करने वाले सभी लोगों के लिए बहुत बहुत धन्यवाद। मेरे पास अंत में यह काम कर रहा है।

यह रहा:

  for(var i = 0; i < abcPre.length;i++){
  console.log(abcPre[i]);
  if (abcPre.SentDate = []) {
    abcPre[i].SentDate = new Date (abcPre[i].SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

     else {
       console.log(`re-check date IF statement`);
        }
  }
0
pixelcreated 18 जिंदा 2021, 00:02
for(var i = 0; i < abcPre.length;i++){
    if (abcPre[i].SentDate == [] ){
      abcPre[i].SentDate = new Date (abcPre.SentDate).toLocaleDateString("en-GB").split("-");
    console.log(`new date ${abcPre.sentDate}`);
     }

  }
0
Radeanu 17 जिंदा 2021, 16:24
उन लोगों के लिए धन्यवाद जिन्होंने अब तक टिप्पणी की है। मैंने आपकी सलाह का पालन किया है, और अब मुझे 'अमान्य तिथि' रिटर्न मिल रहा है, जिसका अर्थ है कि यह किसी प्रकार की प्रगति है। मैंने अपनी पहली पोस्ट को संशोधित कोड के साथ अपडेट किया है।
 – 
pixelcreated
17 जिंदा 2021, 16:18
नई प्रतिक्रिया देखें
 – 
Radeanu
17 जिंदा 2021, 16:26
हाय राडेनु। बस आपकी प्रतिक्रिया का परीक्षण किया, और मुझे कंसोल लॉग या दिनांक परिवर्तन नहीं मिल रहा है। मुझे लगता है कि यह IF स्टेटमेंट के कारण हो सकता है। मैं अभी भी समाधान निकालने की कोशिश कर रहा हूं। नया दिन, ताजा परिप्रेक्ष्य (मुझे आशा है)। फिर से धन्यवाद।
 – 
pixelcreated
17 जिंदा 2021, 23:50
var d1="2019-12-29 19:21:00"; 
  var d2=d1.split(" ");
  var d3=d2[0];
  var d4=d3.split("-").reverse().join("-");
  console.log(d4) // Output 29-12-2019
  var d5=d4+" "+d2[1]
  console.log(d5);  // Output 29-12-2019 19:21:00
var d1="2019-12-29 19:21:00"; 
  var d2=d1.split(" ");
  var d3=d2[0];
  var d4=d3.split("-").reverse().join("-");
  console.log(d4) // 29-12-2019
  var d5=d4+" "+d2[1]
  console.log(d5);  // 29-12-2019 19:21:00
0
Sumit Pathak 17 जिंदा 2021, 19:21
यदि आपकी समस्या का समाधान हो गया है तो कृपया सर्वोत्तम उत्तर को चिह्नित करें
 – 
Sumit Pathak
18 जिंदा 2021, 21:13