Javascript-ben hogyan lehet egyszerűen egy hónap első vagy utolsó vasárnapját, mint dátumot meghatározni?
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!
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.
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!");
}
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
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.
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
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!