Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Kuud alates X kuupäevast kuni eelmise kuuni märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Aq
HV kasutaja

liitunud: 01.01.2003




sõnum 08.03.2013 10:24:56 Kuud alates X kuupäevast kuni eelmise kuuni vasta tsitaadiga

Mul oleks vaja abi, leidmaks elegantset lahendust selliseks asjaks. Mul on kuupäev "millest-kõik-algab" (teeme näiteks 1. detsember 2012) -> ja nüüd on vaja, et PHP genereeriks mulle automaatselt sellise väljundi, kus kuvatakse üksteise reas kuud alates sellest alguskuupäevast kuni eelmise lõppenud kuuni. Ehk siis, kui algus on 1. detsember 2012 ja täna on 8. märts 2013, siis peaks väljund olema:
2012-12
2013-01
2013-02

Märtsi enam olla ei tohi, sest see on käimasolev, mitte lõppenud kuu.

Ma mõtlen siin igatpidi seda, eks mingi absurdse asja oskaks ise kah välja mõelda, aga kuidas seda teha elegantselt?
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
neros
HV Guru
neros

liitunud: 26.11.2003




sõnum 08.03.2013 11:06:58 vasta tsitaadiga

Aga milles probleem? Midagi sarnast peaks töötama ju:


$current = strtotime('2012-08');

while(date('Y-m', $current) != date('Y-m')) {
   echo "Current: " . date('Y-m', $current)."<br/>";
   $current = strtotime(date('Y-m', $current). "+1 month");
}

_________________
GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt.
Kommentaarid: 48 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum
Valdars
HV veteran
Valdars

liitunud: 22.02.2003




sõnum 09.03.2013 16:02:50 vasta tsitaadiga

Lihtsalt mainin ära, et strtotime võtab ka teise parameetrina timestampi hetkekuu pihta.
Kommentaarid: 47 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 44
tagasi üles
vaata kasutaja infot saada privaatsõnum
Aq
HV kasutaja

liitunud: 01.01.2003




sõnum 09.03.2013 22:41:01 vasta tsitaadiga

Igatahes toimib! Tänud!

Mina ise oleksin hakanud keerulist tingimuslausete rägastikku ehitama icon_smile.gif

Lisan hiljem:
Tegelikult... kas saaks veel aidata - kuidas pöörata see asi teistpidi? Ehk et väljund oleks:
2013-02
2013-01
2012-12

Ma panin asja array'sse, aga isegi selle array ümberpööramine on minu jaoks keerukas. Äkki saab algkoodi tasemel ümber pöörata?
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Karlsson
Kreisi kasutaja

liitunud: 20.08.2004



Autoriseeritud ID-kaardiga

sõnum 10.03.2013 04:53:28 vasta tsitaadiga

Kaks näidet kasutades madedog koodi
1) stringi lisades
$current = strtotime('2012-08');
while(date('Y-m', $current) != date('Y-m')) {
   $temp = "Current: " . date('Y-m', $current)."<br/>". $temp;
   $current = strtotime(date('Y-m', $current). "+1 month");
}
echo $temp;


2)array variant
$current = strtotime('2012-08');
while(date('Y-m', $current) != date('Y-m')) {
   $t[] = "Current: " . date('Y-m', $current)."<br/>";
   $current = strtotime(date('Y-m', $current). "+1 month");
}
$t = array_reverse($t);
foreach ($t as $tline) echo $tline;
Kommentaarid: 90 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 81
tagasi üles
vaata kasutaja infot saada privaatsõnum
neros
HV Guru
neros

liitunud: 26.11.2003




sõnum 10.03.2013 07:44:02 vasta tsitaadiga

Miks hakata jalgratast leiutama? Jah, array_reversega saab ka, aga saab ka "-1 month" kasutades. While tuleb muidugi natuke ümber muuta tol juhul.

Edaspidiselt võiks php.net abiks olla, millegipärast hakkab vaikselt kooliülesande moodi tunduma.

_________________
GitHub
.NET Core & Azure baasil lahendused ja arhitektuur - kontakt.
Kommentaarid: 48 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum
Aq
HV kasutaja

liitunud: 01.01.2003




sõnum 10.03.2013 08:42:57 vasta tsitaadiga

Ei ole kooliülesanne icon_smile.gif Koolis pole juba aastaid käinud. Ma ei pea ennast tegelikult programmeerijaks (peamiselt võrgulehtede sisuhaldur: HTML, CSS jmt tegelev isik), aga oli vaja üks skript teha. Vahel olen mõelnud, et peaks programmeerimist kusagile õppima minema, aga takistuseks on ilmselt see, et mul pole seda "matemaatilist mõtlemist"... Kui oleks, siis oleks ehk ka ise selle lahenduse välja suutnud mõelda.

Lisaks: suurema osa nippidest, mis mul mingite skritpide jaoks vaja on, leiangi mujalt internetist. Lihtsalt sellist asja ei osanud ka sõnadesse panna nii, et oleks mingi fraas, mille järgi otsida.

Aga tänud!
Kommentaarid: 4 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 10.03.2013 09:29:38 vasta tsitaadiga

Sellises lihtsamas programmeerimises on eelkõige loogilist mõtlemist vaja, mitte otseselt matemaatilist.
Matemaatilist mõtlemist on tarvis just matemaatiliste probleemide lahendamisel, et lahenduskäigud üldse välja mõelda.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Kuud alates X kuupäevast kuni eelmise kuuni
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.