我正在使用bootstrap-vue中的b-form-datepicker
控件。我想使用基于当前UTC时间而非浏览器本地时间的日期来初始化控件。
因此,如果它是中部时间July 17, 2020 9:00 PM
(当前为UCT-5),则日历中给出的日期应为July 18, 2020
,因为它对应于July 18, 1:00 AM
。这可能吗?
我可以这样做:
const today = new Date();
const d = new Date(Date.now() + (60 * 1000 * today.getTimezoneOffset()))
即使生成的Date
对象不是正确的时间,它也可以工作,因为日历仅显示日期部分而不显示时间。我希望有更好的解决方案。
我正在像这样初始化控件的v-model
:
<template>
...
<b-form-datepicker
v-model="myDate"
:date-format-options="{ weekday: 'short', month: 'long' }"
></b-form-datepicker>
...
</template>
<script>
...
export default {
data() {
return {
myDate: new Date()
}
}
...
}
</script>
答案 0 :(得分:1)
对于DOCS,toISOString总是返回UTC0。因此,您可以用这种方式实例化日期。我尝试了一种在我的时区有效的方法。 Vue-date-picker获取字符串并生成对象,并带有传递的时区Z。
<template>
...
<b-form-datepicker
v-model="myDate"
:date-format-options="{ weekday: 'short', month: 'long' }"
></b-form-datepicker>
...
</template>
<script>
...
export default {
data() {
return {
myDate: new Date().toISOString()
}
}
...
}
</script>