Gå til innhold

[LØST]Nedtelling til annenhver fredag


Anbefalte innlegg

Hei, sliter litt med et problem.

 

Jeg har i tankene en nedteller for og telle ned antall dager og timer til annenhver fredag.

Jeg har ingen kode, men trenger info om hvordan jeg burde gjøre dette...

Blir ikke "live" script (ajax, javascript, elns.), men skal bare oppdateres hver gang man reloader siden.

 

Håper at det er noen gode sjeler der ute, som kan gi meg en peilepinne på hvordan jeg kan gjøre dette

 

-Fredrik

Endret av Famen
Lenke til kommentar
Videoannonse
Annonse
Håper at det er noen gode sjeler der ute, som kan gi meg en peilepinne på hvordan jeg kan gjøre dette

Annen hver? Er vel lettere om du kommer med en dato. men uansett, her er en pekepin:

 

Du kan bruke strtotime("Next Friday");

 

Og om det er neste der igjen kan du bruke strtotime("+1 week Next Friday"); (tror jeg)

 

Deretter kan du bare trekke dette ifra nåtid, og du har antall sekunder mellom datoene.

 

-- Utestet!

Lenke til kommentar

<?php
$nextfri = date('U', strtotime("Next Friday"));
$present = date('U');

$countdown = $nextfri-$present;

$cdmin = $countdown / '60';
$cdhours = $cdmin / '60';
$cddays = $cdhours / '24';

$cdmincut = mb_substr($cdmin,0,4);
$cdhourscut = mb_substr($cdhours,0,2);
$cddayscut = mb_substr($cddays,0,2);

echo "Det er: $cddayscut dager, $cdhourscut timer og $cdmincut minutter igjen til neste fredag<br><br>";
?>

har denne koden nå, men det selvsagt feil, men jeg er litt usikker på regnestykket, fordi jeg vil telle dager, timer og minutter til fredagen...

Lenke til kommentar
<?php

$nextfri = date('U', strtotime("Next Friday"));

$present = date('U');

 

$countdown = $nextfri-$present;

Der er i alle fall første feil. Du må fjerne date('U', ) så du sitter igjen med kun: $nextfri = strtotime("Next Friday"): i linje 1, og linje to må du bytte ut date('U') med time(); så den blir: $present = time(); Da skal du sitte igjen med antall sekunder. (Om du vil regne om disse til dager/timer/minutter/sekunder så gjøres dette på en annen måte, uten bruk av date(); ). Få til del en først, så skal vi heller se på det med omregning.

Lenke til kommentar

$nextfri = date('U', strtotime("Next Friday"));
$present = date('U');

$countdown = $nextfri-$present;

$cdmin = $countdown / 60;
$cdhours = $cdmin / 60;
$cddays = $cdhours / 24;

$cdmincut = substr($cdmin,0,4);
$cdhourscut = substr($cdhours,0,2);
$cddayscut = substr($cddays,0,2);

echo "Det er: $cddayscut dager, $cdhourscut timer og $cdmincut minutter igjen til neste fredag<br><br>";
?>

 

Regnestykket stemmer, jeg bytta bare om på en ting så funka det for meg. Bruker substr itstede for mb_substr.

Lenke til kommentar

Hvorfor ha med date('U'); hele tiden? Den bruker serverens hestekrefter, men endrer da overhodet ingen ting.

 

$nextfri = date('U', strtotime("Next Friday")); og $nextfri = strtotime("Next Friday"); skal da gi nøyaktig samme svar?

 

Edit: Den er også veldig forvirrende, da den gjør koden mer tunglest.

Endret av pulse
Lenke til kommentar

<?php
//Finne ut når neste fredag er, og nåtid
$nextfri 	=	 strtotime("Next Friday");
$present 	=	 time();	
//Substraktere sekunder til neste fredag, med nåtid (i sekunder)
$countdown 	=	 $nextfri - $present;
//Regnerstykke for og få minutter, timer og dager
$cdmin 		= 	$countdown / '60';
$cdhours 	= 	$cdmin / '60';
$cddays 	= 	$cdhours / '24';
//tar bort desimalene
$cdmincut 	= 	mb_substr($cdmin,0,4);
$cdhourscut = 	mb_substr($cdhours,0,2);
$cddayscut 	= 	mb_substr($cddays,0,2);
//Printer ut svarene
echo "Det er: $cddayscut dager, $cdhourscut timer og $cdmincut minutter igjen til neste fredag<br><br>";
?>

Koden jeg har nå, neste problem:

 

Jeg vil at den skal vise at det er : 2 Dager, 4 Timer og 36 Minutter (eks.) og ikke 2 Dager, 48 Timer og 2909 Minutter...

 

Vet ikke hvordan man skal regne dette sammen, aner rett og slett ikke hva regnestykket blir...

 

-Fredrik

 

EDIT: Skriveleif

Endret av Famen
Lenke til kommentar

Ser fin ut i teorien, men heller dårlig i praksis.

For det første så er matematikken din litt på halv tolv, og for det andre så forsøker du å dele en integer med en string. PHP klarer dette, men ikke tro at noen andre språk er like dumsnille.

Og hvorfor i alle dager bruker du en multi-byte stringfunksjon for å fjerne desimaler? PHP 4-5 forskjellige funksjoner som alle klarer jobben lettere.

 

<?php
//Finne ut når neste fredag er, og nåtid
$nextfri	 	= strtotime('Next Friday');
$present	 	= time();	

//Substraktere sekunder til neste fredag, med nåtid (i sekunder)
$countdown	 	= $nextfri - $present;

//Regnerstykke for og få minutter, timer og dager

$cddays	 	= floor( $countdown/60/60/24 );
$cdhours		= floor( ( $countdown - ( $cddays*60*60*24 ) ) /60/60 );
$cdmin		= floor( ( $countdown - ( $cddays*60*60*24 ) - ( $cdhours*60*60 ) ) /60 );


//Printer ut svarene
echo "Det er: $cddays dager, $cdhours timer og $cdmin minutter igjen til neste fredag<br /><br />";
?>

Endret av M4rTiN
Lenke til kommentar

Dette er en heller dårlig (men burde funke) metode å finne ut av det på:

 

<?php

$days = floor($countdown / (60 * 60 * 24));

$countdown = $countdown - ($days * 60 * 60 * 24);

$hour = floor($countdown / (60 * 60));

$countdown = $countdown - ($hour * 60 * 60);

$min = floor($countdown / 60);

$seconds = $countdown - ($hour * 60);

 

echo "Det er $days dager, $hour timer, $min minutter og $seconds sekunder igjen.";

?>

 

Utestet sådan....

 

Edit: Leif

Endret av pulse
Lenke til kommentar

ok, supert nå fikk jeg det til (med mye hjelp :) )

 

men er det noen som kan svare meg på dette spørsmålet?:

<?php
include("exportrss.php");

// Parse XML/RSS 2.0 feed
$feed = new ExportRSS("http://minside.no/rss.php", "2.0");
$channel = $feed->get_channel_data();
foreach ($feed->get_data() as $item)
{
$stream = $item['link'];
}
echo $stream;
?>

Jeg får den første linken som ble lagt ut, men jeg vil ha den siste? er det noen som vet og kan hjelpe meg?

Lenke til kommentar

Klikk for å se/fjerne innholdet nedenfor
<?php
/*
*	  exportrss.php
*
*	  Copyright 2007 Alec Hussey <[email protected]>
*
*	  This program is free software; you can redistribute it and/or modify
*	  it under the terms of the GNU General Public License as published by
*	  the Free Software Foundation; either version 2 of the License, or
*	  (at your option) any later version.
*
*	  This program is distributed in the hope that it will be useful,
*	  but WITHOUT ANY WARRANTY; without even the implied warranty of
*	  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*	  GNU General Public License for more details.
*
*	  You should have received a copy of the GNU General Public License
*	  along with this program; if not, write to the Free Software
*	  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
*	  MA 02110-1301, USA.
*/

class ExportRSS
{
protected $data = array();
protected $channel = array();
protected $rawdata = array();

public function __construct($data, $version)
{
	$feed = @file_get_contents($data);
	$this->rawdata = simplexml_load_string($feed);

	// Parse the XML/RSS file
	switch ($version)
	{
		case "1.0":
		{
			$this->channel = array(
				"title"	   => $this->rawdata->channel->title,
				"link"		=> $this->rawdata->channel->link,
				"description" => $this->rawdata->channel->description,
				"image"	   => $this->rawdata->channel->image,
				"items"	   => $this->rawdata->channel->items,
				"textinput"   => $this->rowdata->channel->textinput
			);

			foreach ($this->rawdata->item as $item)
			{
				$row = array(
					"title"	   => $item->title,
					"link"		=> $item->link,
					"description" => $item->description
				);
				array_push($this->data, $row);
			}
			break;
		}
		case "2.0":
		{
			$this->channel = array(
				"title"	   => $this->rawdata->channel->title,
				"link"		=> $this->rawdata->channel->link,
				"description" => $this->rawdata->channel->description,
				"language"	=> $this->rawdata->channel->language,
				"date"		=> $this->rawdata->channel->pubDate,
				"builddate"   => $this->rawdata->channel->lastBuildDate,
				"docs"		=> $this->rawdata->channel->docs,
				"generator"   => $this->rawdata->channel->generator,
				"editor"	  => $this->rawdata->channel->managingEditor,
				"webmaster"   => $this->rawdata->channel->webMaster,
			);

			foreach ($this->rawdata->channel->item as $item)
			{
				$row = array(
					"title"	   => $item->title,
					"link"		=> $item->link,
					"description" => $item->description,
					"enclosure"   => $this->enclosure,
					"date"		=> $item->pubDate,
					"guid"		=> $item->guid
				);
				array_push($this->data, $row);
			}
			break;
		}
		default:
		{
			echo "ExportRSS::WARNING: invalid version was specified";
			break;
		}
	}
}

public function get_raw_data()
{
	return $this->rawdata;
}

public function get_channel_data()
{
	return $this->channel;
}

public function get_data()
{
	return $this->data;
}
}
?>

 

Glemte selfølgelig exportrss.php, jeg finner rett og slett ikke ut av hvorfor vil hente ut den første rss-feeden og ikke den siste..

 

EDIT: Bare glem det, fikk det til... takk for all hjelpen jeg fikk

 

-Fredrik

Endret av Famen
Lenke til kommentar

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å
×
×
  • Opprett ny...