Gå til innhold

Lage ett simpelt script


Anbefalte innlegg

Skrevet

Hei, skulle gjerne ha laget ett simpelt script, men vet ikke hvordan jeg gjør det.

 

Det er så enkelt som dette:

 

echo "Er det fredag?";

 

if "fredag"

 

echo "ja"

else "nei"

 

Noe slikt som det.

Bare dama mi som ville ha det på hjemmesiden sin =)

Videoannonse
Annonse
Skrevet

Det er langt i fra så enkelt.

 

if( strftime( '%A' ) == 'Friday' )
{
echo "Det er fredag!";
}
else
{
$next_friday = strtotime( 'next Friday' );
$diff = ceil( ( $next_friday - time() ) / (60*60*24) );
echo "Det er ~{$diff} dager til neste fredag";
}

Skrevet
Det er langt i fra så enkelt.

Hva behager? Koden min funker da, og gjør akkurat det jogil ber om. :)

 

dabear's løsning er enkel og grei den, men funker kun i PHP 5.1.0 eller nyere.

 

En løsning som fungerer for flere versjoner er

 

<?php
$date = date('w');
if ($date == 5) {
echo 'Det er fredag';
} else {
echo 'Det er ikke fredag';
}
?>

 

date('w') returnerer 0(Søndag) til 6(Lørdag) mens date('N') returnerer 1(Mandag) til 7(Søndag)

Skrevet

Så kan det jo nevnes at strftime er bundet opp mot locale, noe som ikke er spesielt heldig. Altså, er php på serveren f.eks konfigurert til å spytte ut ting på norsk vil strftime gjøre nettopp det.

Skrevet
Det er langt i fra så enkelt.

Hva behager? Koden min funker da, og gjør akkurat det jogil ber om. :)

Var ingenting mot din kode. Begynte på innlegget før du hadde svart, men måtte teste dette med tiden til neste fredag etc, så derfor tok det litt lengre tid :)

 

Så kan det jo nevnes at strftime er bundet opp mot locale, noe som ikke er spesielt heldig. Altså, er php på serveren f.eks konfigurert til å spytte ut ting på norsk vil strftime gjøre nettopp det.

Var inne på tanken, helt til jeg fant ut at Microsoft bruker andre "navn" på localene. nb_NO i unix er 'nor' i Windows. Derfor hoppet jeg over hele den biten. Av den grunn blir kanskje en kombinasjon av min og dabear sin kode noe som bør fungere overalt.

Skrevet (endret)
Var inne på tanken, helt til jeg fant ut at Microsoft bruker andre "navn" på localene. nb_NO i unix er 'nor' i Windows. Derfor hoppet jeg over hele den biten. Av den grunn blir kanskje en kombinasjon av min og dabear sin kode noe som bør fungere overalt.

Herregud.. hvorfor skal du gjøre det så mye vanskeligere enn det er?..

Det eksisterer jo allerede en enkel måte å hente ut hvilken dag det er..

date('w') som jeg nevnte i mitt forrige innlegg gjør nettopp det.

Endret av Zandar
Skrevet

Det skal ikke mange på svar her ihvertfall :D

 

Men som jeg fryktet, så blir det mye synsing og mening.

 

Det blir i praksis litt vanskelig å sette 10 kokker til å lage ett måltid

 

Jeg skal se hvem av kodene jeg skal bruke, men nå venter bilen på meg, skal kjører noen mil idag.

 

Takker for alle svar, kjør på! :p

Skrevet

Jeg brukte koden til Martin, og denne fungerte.

 

Men hva om det er kun èn dag igjen, hvordan løses dette?

Skrevet
Jeg brukte koden til Martin, og denne fungerte.

 

Men hva om det er kun èn dag igjen, hvordan løses dette?

Tenker du på at det da st¨r "~1 dager...." ?

 

Det kan i såfall løses på denne måten

if( date( 'w' ) == 5 ) // Happy nå, Zandar?
{
echo "Det er fredag!";
}
else
{
$next_friday = strtotime( 'next Friday' );
$diff = ceil( ( $next_friday - time() ) / (60*60*24) );
echo ( $diff > 1 ) ? "Det er ~{$diff} dager til neste fredag" : "Det er ~{$diff} dag til neste fredag";
}

Skrevet

Eller hva med:

 

if( date( 'w' ) == 5 ) // Happy nå, Zandar?
{
echo "Det er fredag!";
}
else
{
$next_friday = strtotime( 'next Friday' );
$diff = ceil( ( $next_friday - time() ) / (60*60*24) );
echo ( $diff > 1 ) ? "Det er ~{$diff} dager til neste fredag" : "I morgen er det fredag, Jippi!";
}

Skrevet

Haha, jeg gikk for den siste der.

 

Dette blir toppers, nå blir dama fornøyd. Skal ha den på linja under banneret på en Nuke-side.

 

Jeg forsto ikke hva jeg skulle med ' ~ ', så jeg droppa dette tegnet. Ser ut til å fungere allikevel. =)

 

 

Takker så mye for hjelpen, nå blir det kanskje noe på meg til Fredag? Kun to dager igjen! Snart er det fredag!!!!

Skrevet (endret)
Tenker du på at det da st¨r "~1 dager...." ?

 

Det kan i såfall løses på denne måten

if( date( 'w' ) == 5 ) // Happy nå, Zandar?
{
echo "Det er fredag!";
}
else
{
$next_friday = strtotime( 'next Friday' );
$diff = ceil( ( $next_friday - time() ) / (60*60*24) );
echo ( $diff > 1 ) ? "Det er ~{$diff} dager til neste fredag" : "Det er ~{$diff} dag til neste fredag";
}

 

Hehe, synes fremdeles du gjør det vel komplisert ;)

Du bruker 3 forskjellige php dato/tid-funksjoner for å regne ut noe som er enkel matematikk.

 

Slik ville jeg ha løst det.

<?php

$dag = date('w'); //returnerer 0(søndag) til og med 6(lørdag)

if ($dag == 5) {
echo 'Det er fredag!!';
} else {
$ant_dager = ($dag > 5) ? 6 : 5 - $dag;
if ($ant_dager > 1) {
	echo "Det er $ant_dager dager til fredag.";
} else {
	echo 'Det er fredag i morgen!';
}
}
?>

Endret av Zandar
Skrevet

Tenkte jeg skulle ta på meg rollen som forteller:

Moralen i denne historien er at selv de enkleste problemer kan ha hundre forskjelige løsninger i php.

 

Det er en av de tingene jeg liker best med php.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...