Lägg till datum och tider och formatera dem för att visa rätt detaljnivå eller för att återspegla lokala förhållanden. Beräkna tiden mellan två datum eller beräkna ett datum som ligger en viss tid före eller efter ett datum som du anger. Konvertera datum till eller från olika värden för dagar, månader och år och konvertera tider till eller från olika värden för timmar, minuter och sekunder.

Du kan till exempel lägga till data från användare om aktiehandel eller klientmöten, data från en extern källa eller data från en annan app som skapats i PowerApps. Om dessa data omfattar tider på millisekunder är det enklare att runda av dem till närmaste minut. Beräkna hur många dagar som återstår före en viktig milstolpe. Om du vill schemalägga klientmöten var femte dag kan du beräkna dessa datum automatiskt. Om den 10 maj 1985 lagras i olika fält för dagen, månaden och året kan du sammanställa dem till ett enda värde. På motsatt sätt kan du även dela upp varje datum i separata värden om din app hanterar dem separat.

Förutsättningar

  • Registrera dig för PowerApps, installera, öppna det och logga sedan in med samma autentiseringsuppgifter som du använde för att registrera dig.
  • Skapa en app eller öppna en befintlig app i PowerApps.
  • Lär dig hur du konfigurerar en kontroll i PowerApps.

Visa text i en etikettkontroll

Visa text i kontrollen Etikett genom att ställa in värdet för egenskapen Text. Ställ in den här egenskapen genom att skriva direkt i kontrollen eller genom att skriva ett uttryck i formelfältet.

  • Om du skriver direkt i kontrollen visas exakt det du skriver.
  • Om du anger ett uttryck i formelfältet visar kontrollen resultatet av uttrycket.

Nedan visas några exempel.

  1. Lägg till kontrollen Etikett med namnet ShowText och ställ in dess egenskap Text enligt följande formel:
    Now()

    Om datorn är inställd med språkinställningarna för ”en-us”, visas aktuellt datum och tid i följande format:
    mm/dd/åååå hh:mm AM/PM

    Om datorn är inställd med de språkinställningarna för ”en-us”, visas aktuellt datum och tid i följande format:
    mm/dd/åååå hh:mm AM/PM

  2. Ställ in textrutans Text-egenskap för ShowText enligt följande formel:
    DateDiff(Today(), DateValue("01/01/2020"))

    Antalet dagar mellan i dag och den 1 januari 2020

    Kontrollen visar antalet dagar mellan dagens datum och den 1 januari 2020 genom att använda dessa funktioner:

    • DateDiff, som beräknar antalet dagar, kvartal eller år mellan två datum.
    • Today, som beräknar den innevarande dagen som ett värde.
    • DateValue, som konverterar en teckensträng, som visas inom dubbla citattecken, till ett värde på vilket beräkningar kan utföras.
  3. Lägg till en textinmatningskontroll med namnet BirthDate och placera den under ShowText.

  4. I BirthDate anger du månad och dag i ditt födelsedatum (till exempel 05/18).

  5. Ställ in textrutans Text-egenskap för ShowText enligt följande formel:
    DateDiff(Today(), DateValue(BirthDate.Text))

    Antalet dagar mellan i dag och din födelsedag

    ShowText visar antalet dagar mellan i dag och det datum du skriver in för BirthDate. Om din födelsedag redan har inträffat i år visar ShowText ett negativt värde.

Formatera datum och tider med DateTimeValue

Konvertera datum och tider från textsträngar till värden som du kan formatera på en mängd olika sätt och använda i beräkningar. Ange formatet med hjälp av inbyggda och anpassade alternativ.

Note:

Funktionerna DateTimeValue och DateValue kan konvertera datum i något av dessa format till värden:
- MM/DD/ÅÅÅÅ
- DD/MM/ÅÅÅÅ
- DD månad ÅÅÅÅ
- Månad DD ÅÅÅÅ

  1. Lägg till en textinmatningskontroll med namnet ArrivalDateTime och ange ett datum och en tid i följande format:
    5/10/85 6:15 AM

  2. Lägg till kontrollen Etikett med namnet ShowDate och ställ in dess egenskap Text enligt följande formel:
    DateTimeValue(ArrivalDateTime.Text)

    Konvertera ett datum eller en tid till ett värde

    ShowDate visar samma information som du har angett, men den har konverterats från text till ett värde och formaterats annorlunda. Som exempel visas året med fyra siffror i stället för bara två.

  3. Ändra Text-egenskapen för ShowDate enligt följande formel:
    DateTimeValue(ArrivalDateTime.Text, "fr")

    Visa ett datum- eller tidvärde i franskt format

    ShowDate visar dagen före månaden, vilket en fransk användare förväntar sig.

    Tip:

    Om du vill visa en lista över andra språk i Intellisense, tar du bort det avslutande citattecknet och fr från formeln men lämnar det inledande citattecknet:

    Visa en lista över språk

  4. Om du vill använda ett av de olika inbyggda formaten, ändrar du Text-egenskapen för ShowDate enligt den här formeln:
    Text(DateTimeValue(ArrivalDateTime.Text), DateTimeFormat.LongDateTime)

    Visa ett datum- eller tidvärde i franskt format

    ShowDate visar veckodagen, datumet och tiden.

    Tip:

    Parametern DateTimeFormat har stöd för flera andra inbyggda format. Om du vill visa den listan tar du bort LongDateTime från formeln.

  5. Om du vill använda ett anpassat format, ändrar du Text-egenskapen för ShowDate enligt följande formel:
    Text(DateTimeValue(ArrivalDateTime.Text), "mm/dd/yyyy hh:mm:ss.fff AM/PM")

    Visa ett datum- eller tidvärde i franskt format

    ShowDate visar datum/tid-värdet i det format som du har angett, inklusive millisekunder.

    Tip:

    För att avrunda tiden till närmaste tiondel eller hundradel av en sekund anger du hh:mm:ss.f eller hh:mm:ss.ff.

Formatera ett datum med DateValue

  1. Lägg till en textinmatningskontroll med namnet ArrivalDate och ange sedan ett datum i den (till exempel 5/10/85).

  2. Lägg till kontrollen Etikett med namnet FormatDate och ställ in dess egenskap Text enligt följande formel:
    DateValue(ArrivalDate.Text)

    FormatDate visar det datum som du har angett, med undantag för året som visas med fyra siffror.

  3. Ställ in Text-egenskapen för FormatDate enligt följande formel:
    DateValue(ArrivalDate.Text, "fr")

    FormatDate visar dagen före månaden, vilket en fransk användare förväntar sig.

  4. Om du vill använda ett av de olika inbyggda formaten, ställer du in Text-egenskapen för FormatDate enligt den här formeln:
    Text(DateValue(ArrivalDate.Text), DateTimeFormat.LongDate)

    FormatDate visar veckodagen, månaden, dagen och året.

  5. Om du vill använda ett anpassat format, ställer du in Text-egenskapen för FormatDate enligt följande formel:
    Text(DateValue(ArrivalDate.Text), "yy/mm/dd")

    FormatDate visar datumet i det format som du har angett.

Formatera en tid med DateTimeValue

  1. Lägg till en textinmatningskontroll med namnet ArrivalTime och skriv sedan 6:15 AM i den.

  2. Lägg till kontrollen Etikett med namnet ShowTime.

  3. Om du vill använda ett av de olika inbyggda formaten, ställer du in Text-egenskapen för ShowTime enligt den här formeln:
    Text(DateTimeValue(ArrivalTime.Text), DateTimeFormat.LongTime)

    ShowTime visar den tid som du angav, inklusive sekunder.

  4. Om du vill använda ett anpassat format, ställer du in Text-egenskapen för ShowTime enligt följande formel:
    Text(DateTimeValue(ArrivalTime.Text), "hh:mm:ss.fff AM/PM")

    ShowTime visar den tid som du angav, inklusive sekunder.

    Tip:

    För att avrunda tiden till närmaste tiondel eller hundradel av en sekund anger du hh:mm:ss.f eller hh:mm:ss.ff i formeln.

Visa tiden mellan datum

  1. Lägg till två textinmatningskontroller med namnet Start och End.

  2. Skriv in 4/1/2015 i Start och skriv in 1/1/2016 i End.

  3. Lägg till kontrollen Etikett med namnet DateDiff och ställ in dess egenskap Text enligt följande formel:
    DateDiff(DateValue(Start.Text), DateValue(End.Text))

    Jämföra två datum

    DateDiff visar 275, vilket är antalet dagar mellan den 1 april 2015 och den 1 januari 2016.

  4. Ställ in textrutans Text-egenskap för DateDiff enligt följande formel:
    DateDiff(DateValue(Start.Text), DateValue(End.Text), Months)

    DateDiff visar 9, vilket är antalet dagar mellan den 1 april 2015 och den 1 januari 2016. Ersätt Months med Quarters eller Years för att visa tiden i dessa enheter.

Identifiera ett datum före eller efter ett annat datum

  1. Lägg till en textinmatningskontroll med namnet Start och skriv 5/10/1985 i den.

  2. Lägg till kontrollen Etikett med namnet DateAdd och ställ in dess egenskap Text enligt följande formel:
    DateAdd(DateValue(Start.Text), 3)

    Lägg till tre dagar

    DateAdd visar 5/13/1985, vilket är tre dagar efter datumet för Start.

  3. Ställ in Text-egenskapen för DateAdd enligt följande formel:
    DateAdd(DateValue(Start.Text), -3)

    Ta bort tre dagar

    DateAdd visar 5/7/1985, vilket är tre dagar före datumet i Start.

  4. Ändra Text-egenskapen för DateAdd enligt följande formel:
    DateAdd(DateValue(Start.Text), 3, Months)

    Lägg till tre månader

    Etiketten visar 8/10/1985, vilket är tre dagar efter datumet för Start. Ersätt Months med Quarters eller Years för att identifiera ett datum som infaller det angivna antalet kvartal eller år före eller efter datumet för Start.

Beräkna datum baserat på år, månader och dagar

  1. Lägga till tre kontroller av typen Nedrullningsbar listruta med namnen Year, Month, och Day.

  2. Ställ in Start-egenskapen för Year enligt den här formeln:
    Table({Year:"2014"}, {Year:"2015"}, {Year:"2016"})

  3. Ställ in Items-egenskapen för Month enligt den här formeln:
    Table({Month:"1"}, {Month:"2"}, {Month:"3"}, {Month:"4"}, {Month:"5"}, {Month:"6"}, {Month:"7"}, {Month:"8"}, {Month:"9"}, {Month:"10"}, {Month:"11"}, {Month:"12"})

  4. Ställ in Items-egenskapen för Day enligt den här formeln:
    Table({Day:"1"}, {Day:"2"}, {Day:"3"}, {Day:"4"}, {Day:"5"}, {Day:"6"}, {Day:"7"}, {Day:"8"}, {Day:"9"}, {Day:"10"}, {Day:"11"}, {Day:"12"}, {Day:"13"}, {Day:"14"}, {Day:"15"}, {Day:"16"}, {Day:"17"}, {Day:"18"}, {Day:"19"}, {Day:"20"}, {Day:"21"}, {Day:"22"}, {Day:"23"}, {Day:"24"}, {Day:"25"}, {Day:"26"}, {Day:"27"}, {Day:"28"}, {Day:"29"}, {Day:"30"}, {Day:"31"})

  5. Lägg till kontrollen Etikett och ange egenskapen Text till följande formel:
    Text(Date(Value(Year.Selected.Value), Value(Month.Selected.Value), Value(Day.Selected.Value)), DateTimeFormat.LongDate)

    Wednesday, January 1, 2014 visas som standard. Välj olika värden för kontrollerna för nedrullningsbar listruta för att ändra datumet i kontrollen Etikett.

Du kan behöva konvertera data som du inte förväntade dig. Om du lägger till textinmatningskontroller i stället för kontroller för nedrullningsbar listruta, kan en användare ange ett felaktigt datum, som 45 maj. Datum-funktionen hanterar ovanliga data på följande sätt:

  • Om årsvärdet ligger mellan 0 och 1899 (inklusive), lägger funktionen till detta värde till 1900 för att beräkna året.
  • Om årsvärdet ligger mellan 1900 och 9999 (inklusive), använder funktionen det värdet som året.
  • Om årsvärdet är mindre än 0 eller är 10 000 eller större, returnerar funktionen ett felaktigt värde.
  • Om månadsvärdet är större än 12, lägger funktionen till det antalet månader till den första månaden för det angivna året.
  • Om ett månadsvärde är mindre än 1, drar funktionen av det antalet månader plus 1 från den första månaden för det angivna året.
  • Om ett dagsvärde är större än antalet dagar i den angivna månaden, lägger funktionen till det antalet dagar till den första dagen i månaden och returnerar motsvarande datum från en efterföljande månad.
  • Om ett dagsvärde är mindre än 1, drar funktionen av så många dagar, plus 1, från den första dagen i den angivna månaden.

Beräkna tider baserat på timmar, minuter och sekunder

  1. Lägg till två Nedrullningsbar listruta-listor med namnet Hour och Minute.

  2. Ställ in Items-egenskapen för Hour enligt den här formeln:
    Table({Hour:"9"}, {Hour:"10"}, {Hour:"11"}, {Hour:"12"}, {Hour:"13"}, {Hour:"14"}, {Hour:"15"}, {Hour:"16"}, {Hour:"17"})

  3. Ställ in Items-egenskapen för Minute enligt den här formeln:
    Table({Minute:"0"}, {Minute:"15"}, {Minute:"30"}, {Minute:"45"})

  4. Lägg till kontrollen Etikett och ange egenskapen Text till följande formel:

    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), 0), DateTimeFormat.ShortTime)

  5. Välj 15 för Hour och 45 för Minute.

    Kontrollen Etikett visar 3:45 PM.

    Du kan lägga till poster till Hour och Minute så att användarna kan välja från ett större intervall av timmar och ett mer exakt antal minuter. Du kan också lägga till en tredje kontroll för nedrullningsbar listruta så att användarna kan ange sekunder. Om du lägger till en tredje lista ställer du in egenskapen Text för kontrollen Etikett till följande uttryck:
    Text(Time(Value(Hour.Selected.Value), Value(Minute.Selected.Value), Value(Second.Selected.Value)), DateTimeFormat.LongTime)