Maison > interface Web > Tutoriel Layui > le corps du texte

contrôle du temps layui sélectionner l'heure

Libérer: 2020-06-13 18:05:00
avant
3486 Les gens l'ont consulté

contrôle du temps layui sélectionner l'heure

Résolvez le problème selon lequel le contrôle du temps layui ne peut pas être utilisé normalement après l'avoir effacé, et sélectionnez la plage horaire

Il existe deux solutions :

Méthode 1 ( layui 1.x) :

code html :

<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="start_time" class="layui-input" id="start_time"
placeholder="开始时间(修改时间)">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="end_time" class="layui-input" id="end_time"
placeholder="结束时间(修改时间)">
</div>
</div>
js代码:
var start = {
istime: true,
format: &#39;YYYY-MM-DD hh:mm:ss&#39;,
max: &#39;2099-06-16 23:59:59&#39;,
istoday: true,
choose: function (datas) {
end.min = datas; //开始日选好后,重置结束日的最小日期
}
};

var end = {
istime: true,
format: &#39;YYYY-MM-DD hh:mm:ss&#39;,
max: &#39;2099-06-16 23:59:59&#39;,
istoday: true,
choose: function (datas) {
start.max = datas; //结束日选好后,重置开始日的最大日期
}
};

document.getElementById(&#39;start_time&#39;).onclick = function () {
start.elem = this;
laydate(start);
};
document.getElementById(&#39;end_time&#39;).onclick = function () {
end.elem = this;
laydate(end);
};
Copier après la connexion

Méthode 2 (layui 2.x) :

code html

<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="start_time" class="layui-input" id="start_time"
placeholder="开始时间(修改时间)">
</div>
</div>
<div class="layui-inline">
<div class="layui-input-inline">
<input type="text" name="end_time" class="layui-input" id="end_time"
placeholder="结束时间(修改时间)">
</div>
</div>
js代码
layui.use([ &#39;laydate&#39;], function(){
var $ = layui.$;
var laydate = layui.laydate;
var nowTime = new Date().valueOf();
var max = null;

var start = laydate.render({
elem: &#39;#start_time&#39;,
type: &#39;datetime&#39;,
max: nowTime,
btns: [&#39;clear&#39;, &#39;confirm&#39;],
done: function(value, date){
endMax = end.config.max;
end.config.min = date;
end.config.min.month = date.month -1;
}
});
var end = laydate.render({
elem: &#39;#end_time&#39;,
type: &#39;datetime&#39;,
max: nowTime,
done: function(value, date){
if($.trim(value) == &#39;&#39;){
var curDate = new Date();
date = {&#39;date&#39;: curDate.getDate(), &#39;month&#39;: curDate.getMonth()+1, &#39;year&#39;: curDate.getFullYear()};
}
start.config.max = date;
start.config.max.month = date.month -1;
}
});
Copier après la connexion

basé dynamiquement sur l'heure de début Limiter l'heure de fin Type de point de connaissance : 'datetime', c'est une date avec heures, minutes et secondes, c'est une date sans heures, minutes et secondes

layui.use(&#39;laydate&#39;, function(){
   /* lay(&#39;.layui-input&#39;).each(function(){
  laydate.render({
    elem: this
    ,trigger: &#39;click&#39;
    ,change: function(value, date, endDate){
    console.log(value); //得到日期生成的值,如:2017-08-18
    console.log(date); //得到日期时间对象:{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
    console.log(endDate); //得结束的日期时间对象,开启范围选择(range: true)才会返回。对象成员同上。
    }
  });
});  */
var $ = layui.$;
    var laydate = layui.laydate;
   var nowTime = new Date().valueOf();
    var max = null;
       var start = laydate.render({
        elem: &#39;#start_time&#39;,
        type: &#39;datetime&#39;,
        btns: [&#39;clear&#39;, &#39;confirm&#39;],
        done: function(value, date){
            endMax = end.config.max;
            end.config.min = date;
            end.config.min.month = date.month -1;
        },
        change: function(value, date, endDate){
        var timestamp2 = Date.parse(new Date(value));
timestamp2 = timestamp2 / 1000;
            end.config.min = timestamp2;
            end.config.min.month = date.month -1;
    }
    });
    var end = laydate.render({
        elem: &#39;#end_time&#39;,
        type: &#39;date&#39;,
        done: function(value, date){
        console.log(" ======  "+date);
            if($.trim(value) == &#39;&#39;){
                var curDate = new Date();
                date = {&#39;date&#39;: curDate.getDate(), &#39;month&#39;: curDate.getMonth()+1, &#39;year&#39;: curDate.getFullYear()};
            }
            start.config.max = date;
            start.config.max.month = date.month -1;
        }
    });
});
Copier après la connexion

Grâce au code ci-dessus, il il est possible de modifier dynamiquement la valeur maximale de l'heure de début et la valeur minimale de l'heure de fin modifiée. Parlons des pièges faciles à rencontrer :

Pit 1 : laydate.render ne peut pas être rendu de manière répétée Lorsqu'un elem correspondant à laydate.render a été rendu une fois, on ne peut pas modifier le max en le rendant à nouveau. .valeur et valeur minimale.

Piège 2 : startDate.config.max et endDate.config.min sont un objet, pas une chaîne, endDate.config.min="2017-01-01" ; en fait, ce que vous obtenez ici est un objet ; , différent de min et max lors du rendu, l'attribution directe de valeurs de chaîne n'aura aucun effet.

Piège 3 : Bien que le format des dates soit le même que celui de endDate.config.min, si vous définissez directement endDate.config.min=dates, vous constaterez que le résultat n'est pas celui que vous souhaitez , car bien que les données dans les dates soient la date que vous avez sélectionnée, la valeur du mois définie dans endDate.config.min est supérieure d'un mois à la valeur du mois que vous avez entrée. Par conséquent, si la date de début que vous avez sélectionnée est le 13 novembre, La valeur est directement attribuée à endDate.config. Après .min, vous constaterez que la date minimale de la date de fin devient le 13 décembre, nous devons donc réduire la valeur du mois en dates de un, puis l'attribuer à endDate.config.min. .

Pour plus de connaissances layui, veuillez faire attention à la colonne du didacticiel layui du site Web PHP chinois

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal