酒店-选择入住日期与离店日期,并展示住几天

2 篇文章 0 订阅
1 篇文章 0 订阅

前言

代码示例

案例效果

前言

前几天做了一个酒店选择入住与离店日期的小案例,需要展示住了几个晚上,以下是一个代码分享,希望对您有用。

代码示例

提示:本次案例使用的是VUE3 + TS编写,样式随便写的,有需要的可以自行修改。

<template>
  <div id="checkAndOut">
    <div class="checkInAndOut">
      <span>
        <label for="check-in-date">入住日期:</label>
        <input type="date" class="check-in-date" v-model="checkInDate" />
      </span>
      <p class="night">住 {{ nights }} 晚</p>
      <span>
        <label for="check-out-date">退房日期:</label>
        <input type="date" class="check-out-date" v-model="checkOutDate" />
      </span>
    </div>
  </div>
</template>

<script setup lang="ts">
// 引入
import { ref, computed } from 'vue';
// 定义入住时间
let checkInDate = ref<string>('');
// 定义离店时间
let checkOutDate = ref<string>('');
// 通过计算属性计算出住了几天
const nights = computed(() => {
  if (checkInDate.value && checkOutDate.value) {
    const checkIn = new Date(checkInDate.value);
    const checkOut = new Date(checkOutDate.value);
    // Math.abs() 方法可返回一个数的绝对值
    const timeDiff = Math.abs(checkOut.getTime() - checkIn.getTime());
    // Math.ceil() 方法可对一个数进行上舍入。
    return Math.ceil(timeDiff / (1000 * 3600 * 24));
  } else {
    return 0;
  }
});
</script>

<style lang="less" scoped>
#checkAndOut {
  .checkInAndOut {
    display: flex;
    justify-content: center;
    align-items: baseline;
    background-color: #f8f9fa;
    width: 600px;
    margin: 20px;
    background-color: white;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 5px 2px 10px rgb(105, 221, 241);
    border: 1px solid black;
    .night {
      font-size: 16px;
      color: lightseagreen;
      font-weight: 700;
      margin: 0 30px;
    }
  }
}
</style>

 案例效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值