attributo "min" per input gestione date

AndreaCerre

Utente Attivo
7 Giu 2020
34
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

AndreaCerre

Utente Attivo
7 Giu 2020
34
0
6
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
 

Tommy03

Utente Attivo
6 Giu 2018
429
45
28
17
Bassano del Grappa (VI)
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

macus_adi

Utente Attivo
5 Dic 2017
1.266
82
48
IT/SW
mi serve solo sapere
Sarebbe utile avere / eseguire operazione in base agli eventi, ma....


Domandone: Utilizzando come da suggerimento di @Tommy03 "javascript" non sarebbe come utilizzare un plugin esterno?????
L'unica differenza EVIDENTE è che non hai i listener eventi, mutation observer, afther, before etc-......
 

AndreaCerre

Utente Attivo
7 Giu 2020
34
0
6
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
 

AndreaCerre

Utente Attivo
7 Giu 2020
34
0
6
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

macus_adi

Utente Attivo
5 Dic 2017
1.266
82
48
IT/SW
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!
 

MarcoGrazia

Utente Attivo
15 Dic 2009
764
15
18
58
Udine
www.stilisticamente.com
@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" ) ) );