15. august 2008 - 11:17
Der er
5 kommentarer
Håndtering af datoer - muligvis via unix time
Til dem af jer der kender mig: Tak fordi I stadig gider hjælpe mig når jeg sidder fast :)
Jeg er kommet ret langt med en ny side i PHP, men data-håndtering forvirrer mig stadigvæk. Såvidt jeg kan læse mig til er det smarteste at benytte unix-time?
Problemstillingen er: Jeg skal have brugeren til at vælge en dato og et klokkeslet som skal gemmes i databasen sammen med en beskrivelse/event. Dette skal der så "regnes" lidt på og blandt andet sendes en reminder-mail på datoen og events skal fremkomme med rødt når datoen er overskredet.
Er det bedst at bruge unix-time og hvordan giver jeg brugeren mulighed for at vælge en dato? Hvis de får chancen med et tekstfelt bliver datoen jo aldrig korrekt formateret, men omvendt virker 6 dropdown-boxe også voldsomt.
15. august 2008 - 11:26
#1
du kan lave en kalender popup hvor de vælger en dato og indtaster et klokkeslæt, se evt. phpmyadmin den har denne funktion når du skal indsætte data i et datetime felt
<div id="calendarContainer">
<div id="calendarTools">
<div>
<select onchange="calendarGotoMonth(this.options[this.selectedIndex].value, '<?php print $showYear;?>');">
<option value="01"<?php print ($showMonth == "01") ? " selected" : "";?>>Januar</option>
<option value="02"<?php print ($showMonth == "02") ? " selected" : "";?>>Februar</option>
<option value="03"<?php print ($showMonth == "03") ? " selected" : "";?>>Marts</option>
<option value="04"<?php print ($showMonth == "04") ? " selected" : "";?>>April</option>
<option value="05"<?php print ($showMonth == "05") ? " selected" : "";?>>Maj</option>
<option value="06"<?php print ($showMonth == "06") ? " selected" : "";?>>Juni</option>
<option value="07"<?php print ($showMonth == "07") ? " selected" : "";?>>Juli</option>
<option value="08"<?php print ($showMonth == "08") ? " selected" : "";?>>August</option>
<option value="09"<?php print ($showMonth == "09") ? " selected" : "";?>>September</option>
<option value="10"<?php print ($showMonth == "10") ? " selected" : "";?>>Oktober</option>
<option value="11"<?php print ($showMonth == "11") ? " selected" : "";?>>November</option>
<option value="12"<?php print ($showMonth == "12") ? " selected" : "";?>>December</option>
</select>
</div>
<div>
<select onchange="calendarGotoMonth('<?php print $showMonth;?>', this.options[this.selectedIndex].value);">
<?php
// writing year options
for($year=($showYear-25);$year<($showYear+25);$year++) {
?>
<option value="<?php print $year;?>"<?php print ($showYear == $year) ? " selected" : "";?>><?php print $year;?></option>
<?php
}
?>
</select>
</div>
</div>
<div id="calendarTitleContainer">
<div class="calendarDay1">M</div>
<div class="calendarDay2">T</div>
<div class="calendarDay3">O</div>
<div class="calendarDay4">T</div>
<div class="calendarDay5">F</div>
<div class="calendarDay6">L</div>
<div class="calendarDay7">S</div>
</div>
<div id="calendarDayContainer">
<?php
// setting current month
$month = mktime (0, 0, 0, $showMonth, $showDay, $showYear);
// get the number of days in month
$days = cal_days_in_month(CAL_GREGORIAN, (date("m",$month)), date("Y",$month));
// getting 1st day of the week
$day = date("w", mktime(0, 0, 0, date("m",$month ), 1, date("Y",$month )));
// printing the calendar
for ($i=1;$i<=$days;$i++) {
if ($day == 0) $day = 7;
// starting a week
if ($i == 1 || $day == 1) $calendar .= "\t\t<div class=\"calendarWeekContainer\">\n";
//
$calendar .= "\t\t\t<div class=\"calendarDay".$day."\" style=\"cursor: pointer;\" onclick=\"calendarSetDate('".str_pad($i, 2, "0", STR_PAD_LEFT)."','".$showMonth."','".$showYear."')\">".$i."</div>\n";
$day++;
// ending a week
if ($day > 7 || $i == $days) $calendar .= "\t\t</div>\n";
if ($day > 7) $day = 1;
}
print $calendar;
?>
</div>
<div id="calendarTimeContainer">
<input type="text" value="<?php print date("Y");?>" id="calendarYear" maxlength="2" style="width: 30px"> /
<input type="text" value="<?php print date("m");?>" id="calendarMonth" maxlength="2" style="width: 15px"> /
<input type="text" value="<?php print date("d");?>" id="calendarDay" maxlength="2" style="width: 15px"><br>
<input type="text" value="<?php print date("H");?>" id="calendarHour" maxlength="2" style="width: 15px"> :
<input type="text" value="<?php print date("i");?>" id="calendarMinute" maxlength="2" style="width: 15px"> :
<input type="text" value="00" id="calendarSecond" maxlength="2" style="width: 15px"><br>
<input type="button" value="Indsæt dato" onclick="calenderInsertDate();">
</div>
</div>
måske kan du bruge koden til noget den er ikke så pæn men den var det jeg kunne finde i "gemmeren"
15. august 2008 - 11:39
#3
hehe du siger noget dette er dem jeg bruger
/* calendar styles */
.calendarDayTitle {
float: left;
width: 20px;
}
#calendarTitleContainer {
position: relative;
width: 140px;
height: 16px;
float: none;
}
#calendarContainer {
width: 140px;
text-align: center;
}
#calendarDayContainer {
width: 140px;
height: 80px;
}
.calendarWeekContainer {
position: relative;
width: 140px;
height: 16px;
float: none;
}
.calendarDay1 {
position: absolute;
left: 0px;
width: 20px;
}
.calendarDay2 {
position: absolute;
left: 20px;
width: 20px;
}
.calendarDay3 {
position: absolute;
left: 40px;
width: 20px;
}
.calendarDay4 {
position: absolute;
left: 60px;
width: 20px;
}
.calendarDay5 {
position: absolute;
left: 80px;
width: 20px;
}
.calendarDay6 {
position: absolute;
left: 100px;
width: 20px;
background: #c0c0c0;
}
.calendarDay7 {
position: absolute;
left: 120px;
width: 20px;
background: #c0c0c0;
}
#calendarTools {
position: relative;
width: 140px;
height: 50px;
float: none;
}