整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

只能选择过去或者未来的时间段JS-日期和时间组件-layDate

们在前端开发的时候经常遇到这样的情况,比如:生日、订单记录等,只能选择过去的时间,又如:预定只能选择未来的时间。



下面就给大家一个说明方法:

方法:

下载:layui.laydate 组件独立版:

章目录

一 bootstrap 时间日期日历控件datetimepicker

应用

涉及的样式

图片样式展示

pc

手机

属性及使用示例

可用属性列表

示例1:2017-03-30 上午 09:50

示例2:2017-03-30

示例3:仅选择时间

2.3 weekStart 一周从那一天开始

2.4 startDate 开始时间

2.5 endDate 结束时间

2.6 daysOfWeekDisabled 一周禁用的日期

2.7 autoclose 是否自动关闭日期选择器

2.8 startView 日期时间选择器打开之后首先显示的视图。

2.9 minView 日期时间选择器所能提供的最精确的时间选择视图

2.10 maxView 日期选择器最高能展示的范围视图

2.11 todayBtn 是否显示'today'按钮

2.12 todayHighlight 当天日期高亮

2.13 keyboardNavigation 方向键改变日期

2.14 language 语言

2.15 forceParse 强制解析

2.16 minuteStep 步进值

2.17 pickerPosition 选择框的位置

2.18 showMeridian 是否显示上午/下午

2.19 initialDate 初始化日期时间

3.1绑定输入框,并设置format选项

3.2作为组件使用:

3.3时间范围选择联动

具体属性展示

一 bootstrap 时间日期日历控件datetimepicker

应用

手机

pc

涉及的样式

<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

<link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">


<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<script src="static/js/moment-with-locales.js"></script>

<script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>

1

2

3

4

5

6

7

图片样式展示

pc

<div class="col-sm-4">

<div class="input-group">

<span class="input-group-addon">开始日期</span>

<a class='input-group date' id='datetimepicker3'>

<input type='text' class="form-control" id="startDate" readonly/>

<span class="input-group-addon">

<span class="glyphicon glyphicon-calendar"></span>

</span>

</a>

<span class="input-group-addon">~</span>

<span class="input-group-addon">结束日期</span>

<a class='input-group date' id='datetimepicker4'>

<input type='text' class="form-control" id="endDate" readonly/>

<span class="input-group-addon">

<span class="glyphicon glyphicon-calendar"></span>

</span>

</a>


</div>

</div>


<div class="form-group col-lg-6">

<div class="input-group">

<span class="input-group-addon">活动结束日期</span>

<a class='input-group date' id='datetimepicker2'>

<input type='text' class="form-control" id="activityEnd" name="activityEnd"/>

<span class="input-group-addon">

<span class="glyphicon glyphicon-calendar"></span>

</span>

<span class="input-group-addon" style="color:#F00">*</span>

</a>

</div>

</div>


手机

<div class="form-group">

<div class="input-group date form_date" id="datepicker" data-date="" data-date-format="dd MM yyyy" data-link-field="dtp_input2" data-link-format="yyyy-mm-dd" style="width:92%;">

<input class="form-control" size="16" type="text" value="${initialDate}" name="PARAM9" readonly="readonly" id="PARAM9">

<span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>

</div>

<input type="hidden" id="dtp_input2" value="" />

</div>

1

2

3

4

5

6

7

属性及使用示例

<input type="text" readonly class="date" data-link-field="date" />

<input type="hidden" id="date" />

$('.date').datetimepicker();

1

2

3

选中的日期会被存放在id为date的input里。

//设置日期时间控件

$('#datetimepicker1').datetimepicker({

language: 'zh-CN',//显示中文

format: 'yyyy-mm-dd hh:ii:ss',//显示格式

minView: 0,//设置只显示到月份

initialDate: new Date(),

autoclose: true,//选中自动关闭

todayBtn: true,//显示今日按钮

locale: moment.locale('zh-cn')

});

现代前端开发中,组件化是一个重要的趋势。通过创建可重用的组件,我们可以提高代码的复用性,降低维护成本。在这篇文章中,我们将以一个简单的日历组件为例,详细介绍如何在Vue3中使用Typescript进行设计和实现。

  1. 日历组件的设计思路和实现过程

设计一个日历组件,我们需要考虑以下几个关键点:

  • 如何展示一个月的所有日期?
  • 如何处理跨月份的日期选择?
  • 如何让用户选择特定的日期?

首先,我们需要创建一个包含一个月所有日期的数据结构。然后,我们需要创建一个视图,将这些日期以一种易于理解的方式展示出来。最后,我们需要添加一些交互功能,让用户可以选择特定的日期。

  1. 在Vue3中使用Typescript编写该组件的技术细节

在Vue3中,我们可以使用Composition API来组织我们的代码。这使得我们的组件更加模块化,更容易测试和维护。

首先,我们需要定义我们的组件的类型。这包括组件的props、emits和state。例如,我们可以定义一个Calendar组件,它接受一个日期作为prop,并发出用户选择日期的事件。

import { defineComponent, PropType } from 'vue';

export default defineComponent({
  name: 'Calendar',
  props: {
    date: {
      type: Object as PropType<Date>,
      required: true,
    },
  },
  emits: ['selectDate'],
});

然后,我们需要定义我们的组件的逻辑。这包括如何生成一个月的日期,以及如何处理用户的交互。

import { ref, onMounted } from 'vue';
​
export default {
  setup(props) {
    const dates = ref(generateDates(props.date));
​
    function generateDates(date: Date): Date[] {
      // ...省略具体实现...
    }
​
    function selectDate(date: Date): void {
      emit('selectDate', date);
    }
​
    return {
      dates,
      selectDate,
    };
  },
};
  1. 组件的使用示例及可能的应用场景

使用我们的日历组件非常简单。只需要将组件添加到你的模板中,并提供一个日期即可。

<template>
  <Calendar :date="new Date()" @selectDate="handleSelectDate" />
</template>

在我们的日历组件中,用户可以选择一个日期。当用户选择一个日期时,我们的组件会发出一个selectDate事件,我们可以在其他组件中监听这个事件。

例如,我们可以在一个表单组件中使用我们的日历组件,让用户选择一个日期。当用户选择一个日期时,我们可以更新表单的数据,并将数据提交到服务器。

总结起来,通过使用Vue3和Typescript,我们可以创建出强大、易用且可维护的日历组件。这种组件化的开发方式,不仅可以提高我们的开发效率,也可以让我们的应用更加灵活和可扩展。