gpt4 book ai didi

javascript - Material UI DatePicker 显示错误的日期

转载 作者:行者123 更新时间:2023-12-04 12:10:34 25 4
gpt4 key购买 nike

Material UI Pickers 中显示的日期比所选日期晚 1 天:

我选择了 25th,formik 中的值是 25th,但表单上显示的值是 24th。

  "@date-io/date-fns": "^1.3.13",
"date-fns": "^2.9.0",
import DateFnsUtils from '@date-io/date-fns';
import { MuiPickersUtilsProvider, DatePicker } from '@material-ui/pickers';
import { format, addDays } from 'date-fns';

<MuiPickersUtilsProvider utils={DateFnsUtils}>
<FastField
as={DatePicker}
variant="inline"
disableToolbar
name="startTime"
format="PPP"
onChange={date => {
console.log(format(date, 'yyyy-MM-dd'));
setFieldValue('startTime', format(date, 'yyyy-MM-dd'));
}}
value={values.startTime}
/>
</MuiPickersUtilsProvider>

enter image description here

最佳答案

我遇到了同样的问题
毕竟我加了一个parseISO我日期的方法,您需要指定组件的时区。

// import parseISO
import { parseISO } from 'date-fns';
按值(value)(日期属性)
<KeyboardDatePicker
format={'dd/MM/yyyy'}
label="Date"
value={parseISO(salesPage.dateAt)}
onChange={handleDateAtOnChange}
/>
改变时

import { format } from 'date-fns';
import { convertToLocalTime } from 'date-fns-timezone';


export const DEFAULT_DATE_FORMAT = 'yyyy-MM-dd';

/**
* Format a date to a string
*
* @param date
*/
export const formatDate = (date) => {
if (!date) return new Date().toLocaleString();

// Get the timezone from browser using native methods
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
const dateTmp = Date.parse(date.toLocaleString());

const localDate = convertToLocalTime(dateTmp, {
timeZone: timezone,
});

return format(localDate, DEFAULT_DATE_FORMAT);
};

const handleDateAtOnChange = (event) => {
formatDate(event.target.value)
}


关于javascript - Material UI DatePicker 显示错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60382084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com