• 1
  • 2
2024-07-07, 16:57
  #1
Medlem
Finikantens avatar
För att använda dataspråk; hur gör man en query för att få fram en medlems registreringsdatum så att det visas på detta sätt på sidan?

12 February 2023
Citera
2024-07-07, 17:09
  #2
Medlem
Finikantens avatar
Jag önskar att det vore så här enkelt men tji fick jag för det står ingenting trots att medlemmen ifråga är tydligt registrerad på ett särskilt datum:

wixData.get("Members", memberId)
.then((item) => {
if (item._createdDate === undefined) {
console.log("not registered");
} else {
$w("#registerDate").text = (item._createdDate);
}
});
Citera
2024-07-07, 21:57
  #3
Medlem
Enterprises avatar
Det kan vi inte veta om inte du lägger upp information om hur innehållet i item._createdDate ser ut just nu.
Exempelvis genom att du berättar vad som anges i konsollen efter att ha lagt in koden:
Kod:
console.log(item._createdDate);
console.log(typeof(item._createdDate));
Det här lägger du alltså in i din else-sats.
Citera
2024-07-08, 00:51
  #4
Medlem
bithaxs avatar
Vad är det för fel på att göra en SQL fråga nu då då? Domain Specifik Language” pajaserier? SQL är en DSL och en jävligt bra sådan. Problemet är om man inte kan språket!
Citera
2024-07-08, 00:53
  #5
Medlem
Finikantens avatar
Citat:
Ursprungligen postat av Enterprise
Det kan vi inte veta om inte du lägger upp information om hur innehållet i item._createdDate ser ut just nu.
Exempelvis genom att du berättar vad som anges i konsollen efter att ha lagt in koden:
Kod:
console.log(item._createdDate);
console.log(typeof(item._createdDate));
Det här lägger du alltså in i din else-sats.

Borde detta funka? Jag testade genom preview men konsollen sade ingenting om _createdDate så jag har ingen aning om vad för information du menar att den ska visa?

wixData
.get("Members", memberId)
.then((item) => {
$w("#registerDate").text = (item._createdDate);
console.log(item._createdDate);
})
.catch((err) => {
console.log(typeof(err._createdDate));
});
Citera
2024-07-08, 00:54
  #6
Medlem
Finikantens avatar
Citat:
Ursprungligen postat av bithax
Vad är det för fel på att göra en SQL fråga nu då då? Domain Specifik Language” pajaserier? SQL är en DSL och en jävligt bra sådan. Problemet är om man inte kan språket!

Så vad har du för kod-förslag bithax?
Citera
2024-07-08, 09:46
  #7
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Finikanten
Borde detta funka? Jag testade genom preview men konsollen sade ingenting om _createdDate så jag har ingen aning om vad för information du menar att den ska visa?

wixData
.get("Members", memberId)
.then((item) => {
$w("#registerDate").text = (item._createdDate);
console.log(item._createdDate);
})
.catch((err) => {
console.log(typeof(err._createdDate));
});
Nej. Ditt problem är att du inte vet hur _createdDate ser ut.
Du åtgärdar detta genom att köra _createdDate genom console.log() - du kan lägga till JSON.stringify för att tydligare se utfallet, dessutom genom att logga typeof(), vilket ger en ledtråd om vilken datatyp _createdDate är. Är det t.ex. en sträng eller ett objekt?
Kör istället:

Kod:
wixData
     .get("Members", memberId)
     .then((item) => {
      console.log("Fetched from members:");
      console.log(JSON.stringify(item._createdDate));
      console.log("Typeof:");
      console.log(typeof(item._createdDate));
      $w("#registerDate").text = (item._createdDate);
     })
  .catch((err) => {
      console.log("Error fetching members");
})

Det kan också vara så att "members" returnerar en array med en medlem som i sin tur innehåller ett objekt. Men det ska du se om du kör detta. Även om en array i JS betecknas som ett objekt i typeof så ser du detta genom JSON.stringiy, alltså:
Kod:
var a = [0,1,2];
console.log(typeof(a));
>>'object'
console.log(JSON.stringify(a));
>>[0,1,2]
__________________
Senast redigerad av Enterprise 2024-07-08 kl. 09:57.
Citera
2024-07-08, 19:28
  #8
Medlem
Finikantens avatar
Citat:
Ursprungligen postat av Enterprise
Nej. Ditt problem är att du inte vet hur _createdDate ser ut.
Du åtgärdar detta genom att köra _createdDate genom console.log() - du kan lägga till JSON.stringify för att tydligare se utfallet, dessutom genom att logga typeof(), vilket ger en ledtråd om vilken datatyp _createdDate är. Är det t.ex. en sträng eller ett objekt?
Kör istället:

Kod:
wixData
     .get("Members", memberId)
     .then((item) => {
      console.log("Fetched from members:");
      console.log(JSON.stringify(item._createdDate));
      console.log("Typeof:");
      console.log(typeof(item._createdDate));
      $w("#registerDate").text = (item._createdDate);
     })
  .catch((err) => {
      console.log("Error fetching members");
})

Det kan också vara så att "members" returnerar en array med en medlem som i sin tur innehåller ett objekt. Men det ska du se om du kör detta. Även om en array i JS betecknas som ett objekt i typeof så ser du detta genom JSON.stringiy, alltså:
Kod:
var a = [0,1,2];
console.log(typeof(a));
>>'object'
console.log(JSON.stringify(a));
>>[0,1,2]

Jag är tacksam för att du försöker hjälpa mig men jag får inte fram något av det i konsolen. På rad 42 står det något krångligt i rött men det har inte med datum att göra utan med en annan funktion Koden bör väl även innehålla i vilken form datumet ska visas? (alltså typ day: numeric, month long, year: numeric). Finns det någon möjlighet att använda sig av ett dataset istället eller blir det ännu svårare?
__________________
Senast redigerad av Finikanten 2024-07-08 kl. 19:33.
Citera
2024-07-08, 21:18
  #9
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Finikanten
Jag är tacksam för att du försöker hjälpa mig men jag får inte fram något av det i konsolen. På rad 42 står det något krångligt i rött men det har inte med datum att göra utan med en annan funktion Koden bör väl även innehålla i vilken form datumet ska visas? (alltså typ day: numeric, month long, year: numeric). Finns det någon möjlighet att använda sig av ett dataset istället eller blir det ännu svårare?
Du har något kardinalfel om du inte kan se något alls i konsollen och inte har några filter inkopplade (finns numera vänster om konsollfönstret). Du måste lösa det först innan du kan felsöka vidare.
Citera
2024-07-08, 23:28
  #10
Medlem
Finikantens avatar
Citat:
Ursprungligen postat av Enterprise
Du har något kardinalfel om du inte kan se något alls i konsollen och inte har några filter inkopplade (finns numera vänster om konsollfönstret). Du måste lösa det först innan du kan felsöka vidare.

Felet beror nog snarare på min okunskap men jag ska se efter om jag kan få fram ett större fönster med information än när man klickar på "Preview". Jag är generande dålig på konsolavläsning och "avancerade" grejer
Citera
2024-07-09, 10:28
  #11
Medlem
Finikantens avatar
Den här koden fungerar

const date = $w("#registerDate").text = (memberInfo._createdDate);

const options = {
day: "numeric",
month: "long",
year: "numeric",
};
$w("#registerDate").text = date.toLocaleDateString("en-US", options);
Citera
2024-07-09, 16:16
  #12
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Finikanten
Den här koden fungerar

const date = $w("#registerDate").text = (memberInfo._createdDate);

const options = {
day: "numeric",
month: "long",
year: "numeric",
};
$w("#registerDate").text = date.toLocaleDateString("en-US", options);
Bra att det fungerar, men det där är jättemärklig kod från ett vanilj-Javascript-perspektiv.

Givet att memberInfo._createdDate är en sträng med ett ISO-datum, hade nedanstående varit normal JS-kod för samma ändamål:

Kod:
const date = new Date(memberInfo._createdDate);
const 
options = {
          
day"numeric",
          
month"long",
          
year"numeric",
        };
$w("#registerDate").text date.toLocaleDateString("en-US"options); 

Det beror på att toLocaleDateString är en funktion tillhörig Date-objekt och inte strängar.
Alternativt är memberInfo._createdDate redan ett Date-objekt och i så fall hade följande kod räckt:
Kod:
const options = {
          
day"numeric",
          
month"long",
          
year"numeric",
        };
$w("#registerDate").text memberInfo._createdDate.toLocaleDateString("en-US"options); 
__________________
Senast redigerad av Enterprise 2024-07-09 kl. 16:19.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in