在 mui/x-date-picker 中获取错误时间

问题描述 投票:0回答:1

我尝试将日期从日期选择器转换为 iso 格式,但总是比我的时间晚 3 小时。我该如何解决它?

这是我的代码:

'use client';
import React, { useEffect, useState } from 'react';
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
import { DesktopDatePicker } from '@mui/x-date-pickers/DesktopDatePicker';
import styles from '@/app/broadcast/broadcast.module.scss';
import Input from '@/components/Input/Input';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import './styles.css';
import dayjs, { Dayjs } from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';

dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.tz.setDefault(Intl.DateTimeFormat().resolvedOptions().timeZone);

const DatePicker = ({...props}) => {
const [subscribedAfter, setSubscribedAfter] =
    useState<Dayjs | null>(dayjs());
  return (
    <>
      <LocalizationProvider dateAdapter={AdapterDayjs}>
        <DesktopDatePicker
          className={styles.form__input_date}
          value={subscribedBefore}
          format={'MMMM DD, YYYY'}
          onChange={(newValue) => setSubscribedBefore(newValue)}
          renderLoading={() =>
            <Input {...props}
            />}
        />
      </LocalizationProvider>
    </>
  );
};

这是我的 ISO 格式日期:2024-06-30T11:47:42.419Z(实时 14:47)
如有任何帮助,我们将不胜感激。

我尝试从浏览器获取时区并自行设置,但不起作用。

datetime next.js datepicker
1个回答
0
投票

我通过在我的钩子中添加 utc 偏移量找到了解决方案。就像这样:

const [subscribedAfter, setSubscribedAfter] =
    useState(dayjs.utc().utcOffset(0, true));

© www.soinside.com 2019 - 2024. All rights reserved.