Wenn ich zwei Daten haben 20-4-2010 und 22-4-2010 in zwei Textfelder und Ich möchte die Daten wie diese 20, 21, 22. Wie bekomme ich das?Wie finde ich die Daten zwischen zwei angegebenen Daten?
10
A
Antwort
14
Ich bin ziemlich sicher, Dies wurde eine Billiarde Mal zuvor beantwortet, aber auf jeden Fall:
$start = strtotime('20-04-2010 10:00');
$end = strtotime('22-04-2010 10:00');
for($current = $start; $current <= $end; $current += 86400) {
echo date('d-m-Y', $current);
}
Der Teil 10:00
verhindert, dass der Code aufgrund von Sommerzeit einen Tag überspringen oder wiederholen kann.
Durch die Anzahl der Tage zu geben:
for($i = 0; $i <= 2; $i++) {
echo date('d-m-Y', strtotime("20-04-2010 +$i days"));
}
Mit
PHP5.3$period = new DatePeriod(
new DateTime('20-04-2010'),
DateInterval::createFromDateString('+1 day'),
new DateTime('23-04-2010') // or pass in just the no of days: 2
);
foreach ($period as $dt) {
echo $dt->format('d-m-Y');
}
7
Sie können mktime()
verwenden.
mktime() ist nützlich für die Arithmetik und Validierung von Daten, da es automatisch den korrekten Wert für Eingaben außerhalb des Bereichs berechnet.
Wenn Sie erhöhen die Tagesnummer Sie ein gültiges Datum zurück, auch wenn Sie das Ende des Monats gehen vorbei:
<?php
$day= 25;
$dateEnd = mktime(0,0,0,5,3,2010);
do {
$dateCur = mktime(0,0,0,4,$day,2010);
$day++;
print date('d-m-y', $dateCur) .'<br>';
} while ($dateCur < $dateEnd);
Ausgang:
25-04-10
26-04-10
27-04-10
28-04-10
29-04-10
30-04-10
01-05-10
02-05-10
03-05-10
1
Sie tun können:
$start = strtotime("2010-04-20"); // get timestamp for start date.
$end = strtotime("2010-04-22"); // get timestamp for end date.
// go from start timestamp to end timestamp adding # of sec in a day.
for($t=$start;$t<=$end;$t+=86400) {
// get the date for this timestamp.
$d = getdate($t);
// print the date.
echo $d['mday'].'-'.$d['mon'].'-'.$d['year']."\n";
}
Ausgang:
20-4-2010
21-4-2010
22-4-2010
-1
die Sie interessieren, hoffen, dass es Hilfe
$begin = date("Y-m-d", strtotime($date);
$end = date("Y-m-d", strtotime($date));
$begin = new DateTime($begin);
$end = new DateTime($end);
for ($i = $begin; $i <= $end; $i=$i->modify('+1 day')) {
echo $i->format('Y-m-d');
}
0
/**
* Function to list of weeks start and end.
* @param string strDateFrom (Date From "YYYY-MM-DD")
* @param string strDateTo (Date To "YYYY-MM-DD")
* @return array weeks
*/
function getWeeksBetweenTowDates($date_from, $date_to) {
$startweek = $current_week = date("W", strtotime($date_from));
$endweek = date("W", strtotime($date_to));
$current_year = date("Y", strtotime($date_from));
$current_yearweek = date("Y", strtotime($date_from)) . $startweek;
$end_yearweek = date("Y", strtotime($date_to)) . $endweek;
$start_day = 0;
$end_day = 0;
while ($current_yearweek <= $end_yearweek) {
$dto = new DateTime();
if ($start_day == 0) {
$start_day = $dto->setISODate(date("Y", strtotime($date_from)), $current_week, 0)->format('Y-m-d');
$end_day = $dto->setISODate(date("Y", strtotime($date_from)), $current_week, 6)->format('Y-m-d');
} else {
$start_day = $dto->setISODate(date("Y", strtotime($end_day)), $current_week, 0)->format('Y-m-d');
$end_day = $dto->setISODate(date("Y", strtotime($end_day)), $current_week, 6)->format('Y-m-d');
}
$arr_weeks[sprintf("%02d", $current_week)] = $start_day . " =>" . $end_day;
$last_yearweek_in_year = $current_year . date("W", strtotime('31-12-' . $current_year));
if ($current_yearweek == $last_yearweek_in_year) { //last week in the year
$current_week = 1;
$current_year = ($current_year + 1);
} else {
$current_week = ($current_week + 1);
}
$current_yearweek = $current_year . sprintf("%02d", $current_week);
}
return $arr_weeks;
}
Run Like hilft: date_from = 2015.10.20, DATE_TO = 2016-04-15
$arr_weeks = $this->getWeeksBetweenTowDates($date_from, $date_to);
Ausgang:
Array
(
[43] => 2015-10-18 =>2015-10-24
[44] => 2015-10-25 =>2015-10-31
[45] => 2015-11-01 =>2015-11-07
[46] => 2015-11-08 =>2015-11-14
[47] => 2015-11-15 =>2015-11-21
[48] => 2015-11-22 =>2015-11-28
[49] => 2015-11-29 =>2015-12-05
[50] => 2015-12-06 =>2015-12-12
[51] => 2015-12-13 =>2015-12-19
[52] => 2015-12-20 =>2015-12-26
[53] => 2015-12-27 =>2016-01-02
[01] => 2016-01-03 =>2016-01-09
[02] => 2016-01-10 =>2016-01-16
[03] => 2016-01-17 =>2016-01-23
[04] => 2016-01-24 =>2016-01-30
[05] => 2016-01-31 =>2016-02-06
[06] => 2016-02-07 =>2016-02-13
[07] => 2016-02-14 =>2016-02-20
[08] => 2016-02-21 =>2016-02-27
[09] => 2016-02-28 =>2016-03-05
[10] => 2016-03-06 =>2016-03-12
[11] => 2016-03-13 =>2016-03-19
[12] => 2016-03-20 =>2016-03-26
[13] => 2016-03-27 =>2016-04-02
[14] => 2016-04-03 =>2016-04-09
[15] => 2016-04-10 =>2016-04-16
)
Verwandte Themen
- 1. Wie finde ich den Unterschied zwischen zwei Daten in Tagen?
- 2. Wie finde ich den Unterschied zwischen zwei Daten mit Javascript
- 3. Wie finde ich den Stundenunterschied zwischen zwei Daten in PHP?
- 4. Wie aktive Teilnehmer zwischen zwei angegebenen Daten zählen
- 5. Wie berechne ich die Anzahl der Werktage zwischen zwei Daten?
- 6. Shopify (liquid): Finde die Anzahl der Tage zwischen zwei Daten
- 7. Wie finde ich folgende Daten
- 8. Erhalten Sie alle Monatsnamen zwischen zwei angegebenen Daten
- 9. Generieren von Daten zwischen zwei Daten
- 10. Wie generiere ich alle Daten zwischen zwei Daten?
- 11. Wie finde ich die Periodizität in Daten?
- 12. Differenz zwischen zwei Daten #
- 13. Daten zwischen zwei Tabellen
- 14. Wie überprüfe ich die Differenz in Sekunden zwischen zwei Daten?
- 15. So listen Sie alle Daten zwischen zwei Daten auf
- 16. Berechne No.Days zwischen zwei Daten, die zwischen zwei Tagen ist
- 17. Wie kann ich alle Zeiten zwischen zwei angegebenen Daten und Zeiten finden?
- 18. SSRS-Bericht zwischen zwei Daten
- 19. berechnen sonntags zwischen zwei Daten
- 20. Tage Unterschied zwischen zwei Daten
- 21. Erzeugt alle Daten zwischen zwei
- 22. Dexie: Ereignisse zwischen zwei Daten
- 23. Monate zwischen zwei Daten Funktion
- 24. wie zwischen zwei Daten in PHP
- 25. Tomcat: Wie Daten zwischen zwei Anwendungen teilen?
- 26. Wie wird zwischen zwei Daten unterschieden?
- 27. Wie finde ich die Zeitspanne in Millisekunden zwischen zwei Zeiten?
- 28. Wie finde ich die Entfernung zwischen zwei Längenstellen?
- 29. Wie viele Sekunden zwischen zwei Daten?
- 30. NSDate zwischen zwei angegebenen NSDates
+1 Die Bestest Antworten ... –
+1 für die Date * Klassen, -1 für den Aufruf "Phantasie" und "Overkill", +1 für etwas anderes als die oft zitierte 'strtotime' Lösung. :) – salathe
@gordon können Sie erklären, warum die Einstellung der 10:00 Uhr dort erlaubt ihnen DST angemessen Rechnung zu tragen? Als Referenz warum ich frage, siehe: http://StackOverflow.com/Questions/15302469/Problems-with-Finding-The-days-between-two-unix-timestamps – Shackrock