Jag håller på med en auktion och skulle behöva jämföra två tider med varandra. tänkte att funktionen strtotime() kunde vara användbar men jag får det inte att fungera. allt som returneras ur den är -1
$nusekund=date("s");
$nutimme=date("H");
$numinut=date("i");
$nudag=date("d");
$nuyear=date("Y");
$numonth=date("m");
$totaltid=strtotime($year."-".$month-".$dag.", ".$timme.":".$minut.":".$sekund);
$totalstid=strtotime($nuyear."-".$numonth."-".$nudag.", ".$nutimme.":".$numinut.":".$nusekund);
if($totaltid>=$totalstid) {
echo("<font color=red><b>Såld!</b></font><br>");
$sold="yes";
echo $totaltid."<br>".$totstid;
}
else {
$sold="no";
echo ("".$year."-".$month."-".$dag.", ".$timme.":".$minut.":".$sekund."");
}
båda tiderna är i samma format. t.ex. 2002-07-07, 19:40:50
nån som kan hjälpa?
MatteMedlem sedan aug. 20002 975 inlägg eftersom dom är i samma format så går det bra att jämföra dom direkt, utan att omvandla till timestamp. Se följande lilla exempel:
<?php
$datid = "2002-07-07, 19:40:50";
$nutid = date("Y-m-d, H:i:s");
echo "dåtid: $datid <br>";
echo "nutid: $nutid <br>";
if ($nutid > $datid){
echo "nutid är större !<br>";
} else {
echo "dåtid är större !<br>";
}
?>
<br>
<?php
$datid = "2003-07-07, 19:40:50";
$nutid = date("Y-m-d, H:i:s");
echo "dåtid: $datid <br>";
echo "nutid: $nutid <br>";
if ($nutid > $datid){
echo "nutid är större !<br>";
} else {
echo "dåtid är större !<br>";
}
?>
Annars kan du ta en titt på funktionerna time() och mktime() i manualen.
tack, det fungerade. :)
men nu har jag problem med en annan del av tidsfunktionerna på auktionen. om man lägger ett bud när det är tio minuter eller mindre kvar, ska tidsgränsen förlängas med 10 minuter. jag får det att antingen lägga till 10 minuter varje gång man lägger ett bud oavsett hur lång tid som är kvar, eller så lägger den inte till alls.
nån som kan hjälpa?
//validera tiden
$datid = strtotime($timme.":".$minut.":".$sekund);
$nutid = strtotime(date("H:i:s"));
$diff=($datid-$nutid)/60;
$diff=substr($diff,0,2);
if($diff=='9.' OR $diff=='8.' OR $diff=='7.' OR $diff=='6.' OR $diff=='5.' OR $diff=='4.' OR $diff=='3.' OR $diff=='2.' OR $diff=='1.' OR $diff=='0.') {
$diff=substr($diff,0,1);
}
$nuyear=date("Y");
$numonth=date("m");
$nuday=date("d");
if($year>=$nuyear AND $month>=$numonth AND $dag>=$nuday) {
if($diff>=10) {
//förläng
if($minut==50) {
$minut=00;
$go='no';
if($timme==23) {
$timme=00;
$minut=00;
$dag=$dag+1;
$go='no';
}
else {
$timme=$timme+1;
$go='no';
}
}
else {
$minut=$minut+10;
$go='no';
}
//lägg till förlängning
if($go=='no') {
$sql="UPDATE auktion SET timmar='$timme', minuter='$minut', dagar='$dag' WHERE id='$auktionid'"
or die(mysql_error());
mysql_query("$sql")
or die(mysql_error());
}
}
else {
$go="yes";
}
}
else {
$go="yes";
}
MatteMedlem sedan aug. 20002 975 inlägg Om jag förstår rätt?
Sista budtid är 23.00
Någon lägger ett bud 22.55
Ny Sista budtid är 23.05
I såfall border det gå med något liknande det här:
$datid = strtotime($timme.":".$minut.":".$sekund);
$nutid = strtotime(date("H:i:s"));
if (($datid-$nutid) < 600){
$nydatid = date("Y-m-d, H:i:s", time()+600);
}
det fungerade bra. men inte riktigt ändå. det ska plussas på 10 minuter på den befintliga tidsgränsen inte på stundens datum helst. finns det nåt enkelt sätt att göra det?
MatteMedlem sedan aug. 20002 975 inlägg Vi ändrar bara vilken tid vi plussar på
$datid = strtotime($timme.":".$minut.":".$sekund);
$nutid = strtotime(date("H:i:s"));
if (($datid-$nutid) < 600){
$nydatid = date("Y-m-d, H:i:s", $datid + 600);
}
tack nu fungerar det perfekt :D