attributo "min" per input gestione date

AndreaCerre

Utente Attivo
7 Giu 2020
55
0
6
Ciao, avrei bisogno di un aiuto per settare l'attributo min nell'input gestione date ed ottenere lo stesso risultato dello screenshot, ovvero devo inbire tutte le date precedenti a giorno odierno+1, devo definire questo con la costante php OGGI_PIU_MIN_DAY_VACANCY


<input type="date" min="<?php echo OGGI_PIU_MIN_DAY_VACANCY; ?>" class="form-control" id="my_data_da" aria-label="Data inizio" aria-describedby="my_data_da_pre">
 

Allegati

  • Immagine. per forum.png
    Immagine. per forum.png
    141,4 KB · Visite: 370
Io non ho bisogno del calendario e delle sue funzioni, mi serve solo sapere come settare l'attributo min x bloccare tutte le date precedenti ad oggi+1
 
se ti va bene usare Javascript, ho trovato questo, l'ho provato e funziona:
HTML:
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script>
$(document).ready(function(){
    var domani = new Date();
    
    var mese = domani.getMonth() + 1;
    var giorno = domani.getDate() + 1;
    var anno = domani.getFullYear();
    if(mese < 10)
        mese = '0' + mese.toString();
    if(giorno < 10)
        giorno = '0' + giorno.toString();
    
    var giorno_minimo= anno + '-' + mese + '-' + giorno;
    $('#my_data_da').attr('min', giorno_minimo);
});
</script>
<input type="date" id="my_data_da" />
in alternativa se proprio devi usare php penso che basti sostituire questa:
PHP:
var giorno_minimo= anno + '-' + mese + '-' + giorno;
con questa:
PHP:
var giorno_minimo= <?php echo $variabile_giorno; ?>;
 
  • Like
Reactions: AndreaCerre
Grazie vanno benissmo entrambi, anche se mi serviva qualcosa di ancora più basic, ovvero definire la costante OGGI_PIU_MIN_DAY_VACANCY con una funzione php definita nel file config.php
 
Grazie ad entrambi,
terrò in considerazione le vostre dritte per i prossimi progetti,

per questo ho risolto definendo in php la costante OGGI_PIU_MIN_DAY_VACANCY:

define('OGGI_PIU_MIN_DAY_VACANCY',date("Y-m-d", mktime(0,0,0,date('m'), date('d') + 1, date('Y')) ));

Funziona perfettamente come vedete in allegato
 

Allegati

  • Immagine per forum 2.png
    Immagine per forum 2.png
    14,2 KB · Visite: 387
Funziona perfettamente come vedete in allegato
@AndreaCerre quello che hai fatto funziona su 1 browser non su tutti, se becchi chi non utilizza webkit non funziona per questo il consiglio è ricaduta su una lib esterna e/o su un pezzo in js,,,

Indubbiamente funziona ma tu usi Chrome.... L'attributo min viene processato dai vari browser in modo diverso, quindi prima di
per questo ho risolto
Controlla il perchè dei consigli e la correttezza di quanto hai fatto....

Ripeto 1 browser non fa testo soprattutto se in sviluppo!!!!

Qui la lista delle compatibilità:

Alla fine se lo usi in quel modo hai fatto bene!
 
@macus_adi Stavo per scriverlo io, stavo per scriverlo io, è la prima cosa che mi è venuta in mente sin dal primo post, usare input date perché ci risolve il problema è sbagliato.
Il tipo date, viene visto da IE sotto il 12 come un normale campo text e gli attributi allegati ignorati, come pure da Safari, e visto che i siti oramai vengono visti per lo più via telefono, meglio un plugin in javascript in ogni caso.
Poi il caso della costante in PHP
define('OGGI_PIU_MIN_DAY_VACANCY',date("Y-m-d", mktime(0,0,0,date('m'), date('d') + 1, date('Y')) ));
Ma perché tutto 'sto casino per aggiungere un giorno ( o più ), tra l'altro è sbagliato usare d per definire il giorno, dato che metterà uno 0 ( zero ) davanti ai giorni inferiori a 10, e fare 05 + 1 darà comunque errore, meglio usare j che omette quello 0.
Ma comunque, non era più semplice fare
PHP:
//  Magari prima settando la zona, per evitare di trovare una data sbagliata.
date_default_timezone_set( 'Europa/Rome' ); 

//  Tutti quei riferimenti alla lingua italiana, sono dovuti al fatto che non sai mai su quale sistema operativo girerà il server web.
setlocale( LC_ALL, 'it', 'it_IT', 'ita', 'it_IT@euro', 'it_IT.UTF-8', 'Italian' );

define( 'OGGI_PIU_MIN_DAY_VACANCY', date( 'd-m-Y', strtotime ("+1 day" ) ) );
 

Discussioni simili