Tipo di campo datetime

Questo tipo di campo consente all’utente di modificare dati che rappresentano una data e un’ora (p.e. 1984-06-05 12:15:30).

Può essere reso come una casella di testo o con tag select. Il formato sottostante dei dati può essere un oggetto DateTime, una stringa, un timestamp o un array.

Tipo di dato sottostante uno tra DateTime, stringa, timestamp o array (vedere opzione input)
Reso come casella di testo o tre select
Opzioni
Opzioni ereditate
Tipo genitore form
Classe Symfony\Component\Form\Extension\Core\Type\DateTimeType

Opzioni del campo

date_format

tipo: intero o stringa predefinito: IntlDateFormatter::MEDIUM

Definisce l’opzione format che sarà passata al campo date. Vedere le opzioni per il formato date per maggiori dettagli.

date_widget

tipo: stringa predefinito: choice

Definisce l’opzione widget per il tipo date

days

tipo: array predefinito: da 1 a 31

Lista di giorni disponibili per il tipo di campo day. Questa opzione è rilevante solo quando l’opzione widget è impostata a choice:

'days' => range(1, 31)

placeholder

Nuovo nella versione 2.6: L’opzione placeholder è stata introdotta in Symfony 2.6, al posto di empty_value, che è disponibile per le versioni precedenti.

Nuovo nella versione 2.3: Da Symfony 2.3, si possono usare valori vuoti anche se l’opzione expanded è impostata a true.

tipo: stringa o booleano

Questa opzione determina se apparirà o meno una speciale opzione vuota (p.e. “Scegliere un’opzione”) in cima al select. Questa opzione si applica solamente se entrambe le opzioni expanded e multiple sono impostate a false.

  • Aggiungere un valore vuoto con “Scegliere un’opzione” come testo:

    $builder->add('states', 'choice', array(
        'placeholder' => 'Scegliere un\'opzione',
    ));
    
  • Non mostrare alcun valore vuoto:

    $builder->add('states', 'choice', array(
        'placeholder' => false,
    ));
    

Se non si imposta l’opzione placeholder, sarà aggiunta automaticamente un’opzione vuota (senza testo), ma solo se l’opzione required è false:

// sarà aggiunta un'opzione vuota (senza testo)
$builder->add('states', 'choice', array(
    'required' => false,
));

format

tipo: stringa predefinito: Symfony\Component\Form\Extension\Core\Type\DateTimeType::HTML5_FORMAT

Se l’opzione widget è impostata a single_text, questa opzione specifica il formato del campo input, cioè il modo in cui Symfony interpreterà il dato fornito come stringa temporale. Il formato predefinito è RFC 3339, usato dal campo datetime di HTML5. Con tale valore predefinito, il campo sarà reso come input con type="datetime".

hours

tipo: intero predefinito: da 1 a 23

Lista di ore disponibili per il tipo di campo hours. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

input

tipo: stringa predefinito: datetime

IL formato dei dati di input, cioè il formato in cui la data è memorizzata nell’oggetto sottostante. Valori validi sono:

  • string (p.e. 2011-06-05 12:15:00)
  • datetime (un oggetto DateTime)
  • array (p.e. array(2011, 06, 05, 12, 15, 0))
  • timestamp (p.e. 1307276100)

Il valore che arriva dal form sarà anche normalizzato in questo formato.

Attenzione

Se si usa timestamp, DateType è limitato a date tra il 13 dicembre 1901 20:45:54 GMT e il 19 gennaio 2038 03:14:07 GMT su sistemi a 32bit. Ciò è dovuto a un limite in PHP stesso.

minutes

tipo: intero predefinito: da 1 a 59

Lista di minuti disponibili per il tipo di campo minutes. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

model_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario con cui vengono salvati i dati ricevuti. Deve essere uno dei fusi orari supportati da PHP

months

tipo: array predefinito: da 1 a 12

Lista di ore disponibili per il tipo di campo month. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

seconds

tipo: intero predefinito: da 1 a 59

Lista di secondi disponibili per il tipo di campo seconds. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

time_widget

tipo: stringa predefinito: choice

Definisce l’opzione widget per il tipo time

view_timezone

tipo: stringa predefinito: fuso orario di sistema

Fuso orario con cui i dati vanno mostrati all’utente (e quindi anche i dati che l’utente invia). Deve essere uno dei fusi orari supportati da PHP

widget

tipo: string predefinito: null

Definisce l’opzione widget sia per il tipo date che per il tipo time. Può essere ridefinito con le opzioni date_widget e time_widget.

with_minutes

tipo: Booleano predefinito: true

Se includere o meno i minuti nell’input. Aggiungerà un ulteriore input per catturare i minuti.

with_seconds

tipo: booleano predefinito: false

Se includere o meno i secondi nell’input. Se true, ci sarà un campo aggiuntivo per inserire i secondi.

years

tipo: array predefinito: da 5 anni prima a 5 dopo l’anno corrente

Lista di ore disponibili per il tipo di campo year. Questa opzione è rilevante solo se l’opzione widget è impostata a choice.

Opzioni ereditate

Queste opzioni sono ereditate dal tipo form:

data

tipo: mixed predefinito: Predefinito al campo dell’oggetto sottostante (se presente)

Quando si crea un form, ogni campo inizialmente mostra il valore della proprietà corrispondente dell’oggetto del dominio del form (se un oggetto è legato al form). Se si vuole sovrascrivere il valore iniziale per il form o solo per un singolo campo, lo si può fare con l’opzione data:

$builder->add('token', 'hidden', array(
    'data' => 'abcdef',
));

disabled

type: booleano default: false

Se non si vuole che l’utente modifichi il valore di un campo, si può impostare questa opzione a true. Ogni valore inserito sarà ignorato.

inherit_data

Nuovo nella versione 2.3: Questa opzione era nota come virtual prima di Symfony 2.3.

tipo: booleano predefinito: false

Questa opzione determina se il form erediterà dati dal form genitore. Può essere utile se si ha un insieme di campi duplicati in form multipli. Vedere Ridurre la duplicazione di codice con “inherit_data”.

invalid_message

tipo: stringa predefinito: This value is not valid

Questo è il messaggio di errore di validazione usato quando i dati inseriti sono determinati dalla validazione interna di un tipo di campo. Questo può accadere, per esempio, se l’utente inserire una stringa dentro un campo time che non può essere convertito in un tempo reale. Per i normali messaggi di validazione (come quando si imposta la lunghezza minima per un campo), impostare i messaggi di validazione con le proprie regole di validazione (riferimento).

invalid_message_parameters

tipo: array predefinito: array()

Impostando l’opzione invalid_message, si potrebbe aver bisogno di includere alcune variabili nella stringa. Lo si può fare aggiungendo dei segnaposto all’opzione e includendo le variabili in questa opzione:

$builder->add('un_campo', 'un_tipo', array(
    // ...
    'invalid_message'            => 'Valore inserito non valido: deve includere almeno %num% caratteri',
    'invalid_message_parameters' => array('%num%' => 6),
));

mapped

tipo: booleano

Se si vuole che il campo sia ignorato durante la lettura o la scrittura dell’oggetto, si può impostare l’opzione mapped a false

read_only

tipo: booleano predefinito: false

Se questa opzione è true, il campo sarà reso con l’attributo disabled, in modo che il campo non sia modificabile.

Variabili di form

Variabile Tipo Uso
widget mixed Il valore dell’opzione widget.
type string Presente solo se il widget è single_text e HTML5 è attivo, contiene il tipo di input da usare (datetime, date o time).