Actuellement j'utilise un plugin jQuery Calendar pour afficher un calendrier que j'ai construit. Toutes les données sont complétées à partir d'une base de données SQL en utilisant PHP. Je suis au point avec le calendrier où je dois commencer à avancer et reculer dans le temps. J'ai beaucoup de mal à faire ça pendant une semaine et un mois. Pour juste la vue du jour ce n'était pas mauvais.Calcul du début et de la fin du changement de semaine et de mois?
Ceci est mon code pour le jour
function startTime() {
$today = getdate();
$startTime = mktime(8, 0, 0, $today["mon"], $today["mday"]+$_SESSION['number'], $today["year"]);}
Je passe ensuite $startTime
dans une autre fonction qui fait une requête SQL. $_SESSION[ 'number']
est mis à 0 s'il n'a pas été défini auparavant, sinon j'ajoute 1 ou soustraire 1 en fonction de si l'utilisateur touche le suivant ou le précédent. endTime()
est presque la même fonction.
Je voudrais seulement avoir à apporter des modifications à mes fonctions et endTime()
si possible.
Heres les désordre, et non testés (Nos serveurs vers le bas atm) code pour le calcul jour/semaine/mois
function startTime($type)
{
$today = getDate();
$startTime = mktime(8, 0, 0, $today["mon"], $today["mday"]+$_SESSION['number'], $today["year"]);
if ($type == "day")
{
$startTime = mktime(8, 0, 0, $today["mon"], $today["mday"]+$_SESSION['number'], $today["year"]);
}
if ($type == "week")
{
if ($today['w'] == 0)
{
$startTime = mktime(8, 0, 0, $today["mon"], $today["mday"]+($_SESSION['number'] * $_SESSION['multiplier']), $today['year']);
}
else
{
$day = strtotime("last Sunday");
$today = getdate($day);
$startTime = mktime(8, 0, 0, $today["mon"], $today["mday"]+($_SESSION['number'] * $_SESSION['multiplier']), $today['year']);
}
}
if ($type == "month")
{
$startTime = mktime(8, 0, 0, $today["mon"]+($_SESSION['number']), 0, $today['year']);
}
return $startTime;
}
function endTime(type)
{
$today = getdate();
$endTime = mktime(20, 0, 0, $today["mon"], $today["mday"]+$_SESSION['number'], $today["year"]);
if ($type == "day")
{
$endTime = mktime(20, 0, 0, $today["mon"], $today["mday"]+$_SESSION['number'], $today["year"]);
}
if ($type == "week")
{
if ($today['w'] == 6)
{
$endTime = mktime(20, 0, 0, $today["mon"], $today["mday"]+($_SESSION['number'] * $_SESSION['multiplier']), $today['year']);
}
else
{
$day = strtotime("next Saturday");
$today = getdate($day);
$endTime = mktime(20, 0, 0, $today["mon"], $today["mday"]+($_SESSION['number'] * $_SESSION['multiplier']), $today['year']);
}
}
if ($type == "month")
{
$day = strtotime("next month - 1 hour");
$today = getdate($day);
$endTime = mktime(8, 0, 0, $today["mon"]+($_SESSION['number']), $today["mday"], $today['year']);
}
return $endTime;
}
Je voudrais remercier tout le monde pour leur temps, ceci est mon premier message alors s'il vous plaît laissez Je sais s'il y a de mauvaises pratiques dans mon poste. J'ai cherché stackoverflow, et google pour une solution à ce problème et n'ai pas tout à fait trouvé un.
Êtes-vous obtenir une erreur ou cherchez-vous une révision de code? – Pitchinnate
Revue de code, j'aurais dû l'indiquer. Comme je l'ai dit notre serveur est en panne mais je suis presque positif de calcul pour le mois ne fonctionnera pas. Pour fixer le mois j'ai trouvé cela, mais je ne sais pas si strtotime fonctionne de cette façon '$ day = strtotime (" + ". $ _ SESSION ['nombre']." Mois - 1 heure "); '$ today = getdate ($ day);' '$ endTime = mktime (8, 0, 0, $ aujourd'hui [" mon "] + ($ _ SESSION ['nombre']), $ aujourd'hui [" mday " ], $ aujourd'hui ['year']); ' – Auro