English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base PHP

Manuale avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Uso e esempio della funzione date_interval_create_from_date_string() in PHP

Manuale delle funzioni di data e ora PHP

La funzione date_interval_create_from_date_string() costruisce un DateInterval a partire dal relativo segmento di una stringa.

Definizione e uso

date_interval_create_from_date_string()La funzione èDateInterval :: createFromDateStringAlias. Questa accetta una stringa che specifica un intervallo e restituisce un oggetto DateInterval.

Sintassi

date_interval_create_from_date_string($time)

Parametro

Numero di ordineParametri e descrizione
1

Tempo (obbligatorio)

Questa è una stringa che specifica il formato relativo della data/intervallo da output come desiderato.

Valore di ritorno

La funzione date_interval_create_from_date_string() restituisce un oggetto DateInterval che rappresenta il valore di intervallo fornito.

Versione PHP

Questa funzione è stata introdotta originariamente nella versione PHP 5.3 e può essere utilizzata in tutte le versioni successive.

Esempio online

Esempio di dimostrazione-date_interval_create_from_date_string()Uso della funzione-

<?php
   $time = "3year + 3months + 26 day + 12 hours+ 30 minutes +23 seconds";
   $interval = date_interval_create_from_date_string($time);
   print_r($interval);
?>
Testa a vedere‹/›

Risultato di output

Oggetto DateInterval
(
    [y] => 3
    [m] => 3
    [d] => 26
    [h] => 12
    [i] => 30
    [s] => 23
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

In questa funzione, non puoi usare la stringa ISO8601 (ad esempio 'P12M') per analizzare questo tipo di intervallo, devi usareDateIntervalcostruttore.

Esempio online

In questo esempio, usiamo la notazione stringa ISO8601 per creare l'intervallo-

<?php
  $time1 = new DateInterval('P25DP8MP9Y');
   print_r($time1);
   $time2 = new DateInterval('PT10H');
   print_r($time2);
?>
Testa a vedere‹/›

Risultato di output

Oggetto DateInterval
(
    [y] => 9
    [m] => 8
    [d] => 25
    [h] => 0
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)
Oggetto DateInterval
(
    [y] => 0
    [m] => 0
    [d] => 0
    [h] => 10
    [i] => 0
    [s] => 0
    [f] => 0
    [weekday] => 0
    [weekday_behavior] => 0
    [first_last_day_of] => 0
    [invert] => 0
    [days] =>
    [special_type] => 0
    [special_amount] => 0
    [have_weekday_relative] => 0
    [have_special_relative] => 0
)

Esempio online

Esempio di aggiunta di un intervallo di tempo alla data corrente e stampa del risultato. In questo caso, usiamodate_interval_create_from_date_stringfunzione per calcolare l'intervallo di tempo. -

<?php
   $date = date_create(); 
   $str = "12 anni 3 mesi 14 giorni";
   $interval = date_interval_create_from_date_string($str);
   $res1 = date_add($date, $interval); 
   stampa("Data dopo ".$str);
   stampa(": ".date_format($res1, 'Y-m-d'));
?>
Testa a vedere‹/›

Risultato di output

Data dopo 12 anni 3 mesi 14 giorni: 2032-08-28

Esempio online

Esempio seguente utilizza vari stringhe ISO8601 e le loro stringhe convenzionali per creare intervallo di date-

<?php
   stampa(new DateInterval('P12D')."\n");
   stampa(DateInterval::createFromDateString('12 giorni')."\n");
   stampa(new DateInterval('P7')."\n");
   stampa(DateInterval::createFromDateString('7 mesi')."\n");
   stampa(new DateInterval('P12Y')."\n");
   stampa(DateInterval::createFromDateString('12 anni')."\n");
   stampa(new DateInterval('PT9H')."\n");
   stampa(DateInterval::createFromDateString('9 ore')."\n");
   stampa(new DateInterval('PT19i')."\n");
   stampa(DateInterval::createFromDateString('19 minuti')."\n");
   stampa(new DateInterval('PT45S')."\n");
   stampa(DateInterval::createFromDateString('45 secondi')."\n");
?>