Find den 1. i den aktuelle måned ved at trække dagen minus en (f.eks. 18-1) fra den aktuelle dato og læg så en måned til den dato du får ud af det. Noget i stil med:
@softspot Det var også noget i denne retning jeg eksperimenterede med. Men man skal kunne vælge hvis vi taler om i dag) den 1. marts 2022 eller den 1. april 2022
I dit eksempel har du
dato = cdate("2022-09-18")
Hvordan får jeg dags dato, uden selv at instaste den?
Det er mig der har lavet en hjerneprut. Der skal naturligvis ikke lægges en til day(dato) inden værdien negeres, men efter, så jeg har fjernet paranteserne omkring udtrykket.
dato = now FirstOfThisMonth = DateAdd("d", -day(dato) + 1, dato) FirstOfNextMonth = DateAdd("m", 1, FirstOfThisMonth) FirstOfNextNextMonth = DateAdd("m", 2, FirstOfThisMonth)
Mht. tidspunktet for datoen, så er det vist mest et spørgsmål om formatering, og det må kunne klares med FormatDateTime. Noget i stil med dette:
Nu ved jeg ikke om du har copy/pasted fra din kode, men jeg kan umiddelbart se et syntaktisk problem i din SQL (eller også er det bare fordi jeg ikke kender MySQL):
Conn.Execute("INSERT INTO DB) VALES (removemessage)")
vil jeg mene burde skrives således:
Conn.Execute("INSERT INTO DB VALUES (removemessage)")
Dernæst synes jeg det ser lidt shaky ud, når du blot tager datoen ind fra formularen uden at sikre, at der er tale om en dato. Igen kan det bare være min manglende forståelse af MySQL og den anvendte driver...
If Request("mode") = "createnewbulletin" Then ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''DENNE DEL ER GENNEMTESTET OG OK Dim RS Set RS = Conn.Execute("SELECT username, bulletinboard FROM count") If Not RS.EOF Then Do Until RS.EOF RSAddOne = RS("bulletinboard") + CInt(1) Conn.Execute("UPDATE count SET bulletinboard = " & RSAddOne & " WHERE username = '" & RS("username") & "'") RS.MoveNext Loop End If ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''DENNE DEL ER GENNEMTESTET OG OK
Hvis jeg benytter <input type="date"> bliver det gemt korrekt: yyyy-mm-dd
Men hvis jeg requester ChooseDate, bliver
<%=FirstOfNextNextMonth%>
til
0000-00-00
Når jeg udskriver <%=FirstOfNextNextMonth%> på siden, står det korrekt:
01-03-2022 01-04-2022
Men når jeg vælger en af de to (hvilken er ligegyldig), bliver resultatet altid 0000-00-00. Så et hurtigt gæt er, at der skal rokeres om på <%=FirstOfNextNextMonth%> på en eller anden måde, så der gemmes i yyyy-mm-dd
"Dernæst synes jeg det ser lidt shaky ud, når du blot tager datoen ind fra formularen uden at sikre, at der er tale om en dato. Igen kan det bare være min manglende forståelse af MySQL og den anvendte driver..."
Når der benyttes "DateAdd" vil jeg næsten gå ud fra, at VB også tænker i datoformat. Eller ...?
Ad #25: Well, dette sker jo ifm. opbygningen af din SQL-sætning og hentes råt fra Request.Form (som enhver kan sende til din server-kode - også dem som måske ikke lige poster med din formular => SQL Injection):
removemessage = Request.Form("ChooseDate")
Der bør foretages noget mere validering på den. Anyway! Det er et andet emne, så blot en sidebemærkning - selvom det bør være et fokuspunkt. Tjek evt. mulighed for brug af commands og parametre med din MySQL-driver.
Mht. datoerne, tænker jeg du skal prøve at formatere de datoer du indsætter i databasen i ISO8601-format (yyyymmddTHHnnss) i stedet. Det er et entydigt format i modsætning til locale-formaterne. Se evt. det godkendte svar i linket herunder for nogle hjælper rutiner (selvom du nok hurtigt kan ændre den du allerede har).
Her bliver det så defineret hvordan det skal trækkes ud og præsenteres. "AddZ" er en funktion, som sætter et 0 (nul) foran, hvis datoen f.eks. er:
5/8/2022 17:41:14 = 05-08-2022 17:41:14
Når jeg benytter <input type="date">, og trækker datoen ud på en anden side, bliver det behandlet korrekt. Bare ikke i det ovenstående. Her bliver som sagt gemt 0000-00-00. Hvordan retter jeg til YYYY-MM-DD? Jeg antager, at det er derfor der bare bliver gemt 0'er istedet for datoen.
softspot, det ovenstående eksempel er et "øjebliksbillede" af dato og tid, kan man vel sige. Her bliver den nuværende Date, Month, Year og Time fra serveren splittet op og gemt. Spørgsmålet er, hvordan laver jeg en Request.Form("ChooseDate"). og får det korrekt gemt som YYYY-MM-DD?
Jeg vil mene der findes en funktion til at konvertere den streng som ligger i Request.Form("ChooseDate") til en dato (CDate eller DateSerial eller noget i den stil). Når først du har konverteret værdien til en dato, kan du bruge den på sammen måde som vCreated er brugt i #30...
eller er det mig der ikke forstår din problemstilling helt?
Det var i princippet også forkert at fortsætte denne tråd med en ny problemstilling :) Jeg håber der kommer noget brugbart ud af det
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.