引导vue日期选择器显示UTC

时间:2020-07-17 17:29:36

标签: javascript twitter-bootstrap vue.js timezone bootstrap-vue

我正在使用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>

1 个答案:

答案 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>