Kezdőoldal » Számítástechnika » Weblapkészítés » Javascript-ben hogyan lehet...

Javascript-ben hogyan lehet egyszerűen egy hónap első vagy utolsó vasárnapját, mint dátumot meghatározni?

Figyelt kérdés

2012. aug. 21. 19:57
 1/8 Drone007 ***** válasza:

Ezt php-vel könnyebb megtenni, mert jobb dátumfüggvények állnak rendelkezésre mint js-ben. Viszont php könnyedén átad információt js-nek, úgyhogy akár php-val is csinálhatod.

Magát a függvényt nem fogom leírni, de a tematikája viszonylag egyszerű.


Első vasárnaphoz:

Kezdőértéknek vedd a hónap első napját.

Vizsgáld meg, hogy vasárnap-e (date("w",$dátumbélyeg) == 0 vagy strftime("%u",$dátumbélyeg) == 7)

Ha nem az, léptesd előre a kezdőértéket 1 nappal. Erre használhatod a mktime() függvényt, vagy az időbélyeghez adj hozzá (60*60*24)-et.

Ha vasárnap, akkor tárold a dátumot, és lépj ki a ciklusból.


Utolsó vasárnaphoz:

Kezdőértéknek vedd a hónap utolsó napját (úgy a legegyszerűbb, ha a következő hónap első napjának dátumbélyegéból kivonsz 1 napnyit).

Az előzőekben leírt ciklust futtasd, de visszafelé, vagyis csökkentsd a dátumbélyegzőt 1 nappal.


A kapott értékeket print vagy echoval átadod egy javascript hívásnak, és kész.


Sok sikert!

2012. aug. 22. 07:58
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
sajnos csak javascriptet tudok futtatni, php-t nem. esetleg nincsenek valahol előre megírt függvények hozzá?
2012. aug. 22. 09:50
 3/8 anonim ***** válasza:

Nem tudok róla, de ha felteszel a gépre egy XAMPPot vagy WAMP-ot akkor tudsz futtatni PHP-t is. Az ilyen csomagok direkt előre összehangoltak, szóval csak kevés beállítást kell még rajta eszközölni. :)


Én XAMPP-ot használok, szóval Win-nen kell neki 1 reboot, majd localhoston tudsz rá csatlakozni.

2012. aug. 22. 11:18
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
a webszolgáltatómon nincs php, és nem is akarok php-t használni, szóval hiába mondjátok ezeket a megoldásokat
2012. aug. 22. 12:21
 5/8 anonim ***** válasza:

magyaráztam volna, de könnyebb volt leprogramozni:D tessék:


var x = new Date();

var naps = x.getDay();

var nap = x.getDate();


if (naps == 0) {

alert("Vasárnap van!");

if (nap >= 25) {

alert("A hónap utolsó vasárnapja van!");

}

else if (nap <= 7) {

alert("A hónap első vasárnapja van!");

}

}

else {

alert("Nem vasárnap van!");

}

2012. aug. 22. 14:07
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

bocsi most néztem hogy ha nem vasárnap van gondolom nem érdekel, és akkor van még rövidebb is:


var x = new Date();

var nap = x.getDate();

if (nap >= 25) {

alert("A hónap utolsó vasárnapja van!");

}

else if (nap <= 7) {

alert("A hónap első vasárnapja van!");

}


5# voltam

2012. aug. 22. 14:47
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

jaaa nem hülye vagyok:d marad az első megoldás a második nem jó:) vagy ha mégis így akarod:


var x = new Date();

var naps = x.getDay();

var nap = x.getDate();


if ((nap >= 25) && (naps == 0)) {

alert("A hónap utolsó vasárnapja van!");

}

else if ((nap <= 7) && (naps == 0)) {

alert("A hónap első vasárnapja van!");

}


ez már rövid, és jó de én az elsőt ajánlom, memóriatakarékosabb.

2012. aug. 22. 16:05
Hasznos számodra ez a válasz?
 8/8 anonim válasza:

Ezek közül egyik megoldás sem az igazi, mert nem minden hónap 31 napos, illetve inkább validációt valósít meg a mai napra tekintve, hogy az éppen a hónap utolsó vagy első vasárnapja-e.


De a kérdése másra irányul. Ő azt szeretné tudni melyek azok a napok egy adott hónapban, amelyek vasárnapra esnek, és azok közül mely az első és az utolsó vasárnap.


Erre írtam egy egyszerű függvényt ami nem korlátozódik vasárnapra, bármely napra alkalmazható, példák alul.


Itt tekinthető meg normálisan: [link]

De ide is bemásoltam:


function daysInMonth (year, month) {

var m = new Date(year, month, 0), // this month

numOfDays = m.getDate(),

namesOfDays = ['Vas', 'Hé', 'Ke', 'Sze', 'Csü', 'Pén', 'Szo'],

ret = {}

;

for (var i = 1, d = numOfDays; i <= d; i++) {

m.setDate(i);

var todaysName = namesOfDays[m.getDay()];

if (typeof ret[todaysName] !== "object") {

ret[todaysName] = [i]

} else {

ret[todaysName].push(i);

}

}

m = undefined;

return ret;

}


var napok = daysInMonth(2012, 8);


/* Ezt kapod vissza:

{

"Sze": [1,8,15,22,29],

"Csü": [2,9,16,23,30],

"Pén": [3,10,17,24],

"Szo": [4,11,18,25],

"Vas": [5,12,19,26],

"Hé": [6,13,20,27],

"Ke": [7,14,21,28]

}

*/


var vasarnapok = napok['Vas']; // minden vasárnap

var elso_vasarnap = vasarnapok[0]; // 5

var utolso_vasarnap = vasarnapok[vasarnapok.length -1]; // 26


var csutortokok = napok['Csü']; // minden vasárnap

var elso_csutortok = csutortokok[0]; // 2

var utolso_csutortok = csutortokok[csutortokok.length -1]; // 30

2012. aug. 22. 17:13
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!