uni-app 需要日期插件加上天干地支的信息

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app 需要日期插件加上天干地支的信息

需要日期插件加上天干地支的信息

1 回复

在uni-app中集成日期插件并添加天干地支信息,可以通过自定义组件来实现。以下是一个简单的代码示例,展示如何在uni-app中实现这一功能。

首先,我们创建一个自定义组件DateTimePickerWithTianGanDiZhi.vue,用于显示日期和对应的天干地支信息。

<template>
  <view>
    <picker mode="date" :value="date" @change="onDateChange">
      <view class="picker">{{ formattedDate }} ({{ tianGanDiZhi }})</view>
    </picker>
  </view>
</template>

<script>
export default {
  data() {
    return {
      date: new Date().toISOString().substr(0, 10), // 当前日期,格式为YYYY-MM-DD
    };
  },
  computed: {
    formattedDate() {
      const [year, month, day] = this.date.split('-').map(Number);
      return `${year}年${month}月${day}日`;
    },
    tianGanDiZhi() {
      const tianGan = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'];
      const diZhi = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'];
      const yearIndex = (new Date(this.date).getFullYear() - 4) % 60; // 甲子年始于公元4年
      const dayIndex = (new Date(this.date).getDayOfYear() - 1) % 60; // 获取一年中的第几天,并转为0基索引
      return `${tianGan[yearIndex % 10]}${diZhi[yearIndex % 12]}年 ${tianGan[dayIndex % 10]}${diZhi[dayIndex % 12]}日`;
    },
  },
  methods: {
    onDateChange(e) {
      this.date = e.detail.value;
    },
  },
};
</script>

<style scoped>
.picker {
  padding: 20px;
  text-align: center;
  background-color: #fff;
  border: 1px solid #ddd;
}
</style>

在这个组件中,我们使用picker组件来选择日期,并通过计算属性tianGanDiZhi计算天干地支信息。天干地支的计算基于年份和一年中的第几天,这里假设甲子年始于公元4年,并使用简单的模运算来获取天干地支。

使用该组件时,只需在页面的<template>部分引入即可:

<template>
  <view>
    <DateTimePickerWithTianGanDiZhi />
  </view>
</template>

<script>
import DateTimePickerWithTianGanDiZhi from '@/components/DateTimePickerWithTianGanDiZhi.vue';

export default {
  components: {
    DateTimePickerWithTianGanDiZhi,
  },
};
</script>

这样,你就可以在uni-app中集成一个带有天干地支信息的日期选择器了。

回到顶部