<template>
<picker
mode="date"
:value="sendDateRender"
:start="minDate"
:end="maxDate"
@change="deliveryConfirm">
<view class="picker">{{ sendDateRender }}</view>
</picker>
</template>
<script setup lang="ts">
const sendDateRender = ref<string>(moment().format('YYYY-MM-DD'));
const deliveryConfirm = (e: any) => {
sendDateRender.value =e.detail.value
};
</script>

- 发布:2025-03-26 20:42
- 更新:2025-03-27 15:35
- 阅读:49
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 4.57
手机系统: Android
手机系统版本号: Android 12
手机机型: CT48
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
示例代码:
操作步骤:
预期结果:
实际结果:
bug描述:
当我把安卓系统时区切换到洛杉矶时区时, 使用picker mode=date 选择任意日期,e.detail.value 回调日期总是比选择的日期少一天!!

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
美国时间比国内日期要晚,合理的做法是打印和存储时间戳,保证不同地区展示的绝对时间一样。你使用 Monment 时候也需要设置时区
DCloud_UNI_OttoJi
具体设置方法,你搜一下 "moment js 格式化日期时候如何设置时区?"
2025-03-27 15:36
西邮 (作者)
不要被我这个sendDateRender 的初始值误导了,哪怕我随便写个任意日期的string也不应该影响后续选择,问题重点在于,我在 picker 弹窗内选择的任意日期change回调后, e.detail.value 都会少一天,
2025-03-27 18:49