我使用react datepicker让用户选择一个日期。然而,现在它使用本地时间(PDT),但我想将其硬编码为使用特定时区(PST)。
我尝试使用utcOffset
prop,但它似乎没有任何作用。有人知道如何做到这一点吗?
因为datepicker不再使用moment.js了,所以我试图为这个问题实现一个hacky解决方案,假设初始值是一个字符串,例如:
export const formatUTC = (dateInt, addOffset = false) => {
let date = (!dateInt || dateInt.length < 1) ? new Date : new Date(dateInt);
if (typeof dateInt === "string") {
return date;
} else {
const offset = addOffset ? date.getTimezoneOffset() : -(date.getTimezoneOffset());
const offsetDate = new Date();
offsetDate.setTime(date.getTime() + offset * 60000)
return offsetDate;
}
}
在日期内,我这样调用格式化程序:
selected={formatUTC(this.props.input.value,true)}
onChange={date => formatUTC(date)}
这对我很有用:
import React, { ComponentProps } from "react"
import DatePicker from "react-datepicker"
import moment from "moment"
interface Props {
timezone: string
}
const DatePickerWithTimezone = ({
selected,
onChange,
timezone,
...props
}: Props & ComponentProps<typeof DatePicker>) => (
<DatePicker
selected={selected ? setLocalZone(selected, timezone) : null}
onChange={(v, e) => {
onChange(v ? setOtherZone(v, timezone) : null, e)
}}
{...props}
/>
)
const setLocalZone = (date: Date, timezone: string) => {
const dateWithoutZone = moment
.tz(date, timezone)
.format("YYYY-MM-DDTHH:mm:ss.SSS")
const localZone = moment(dateWithoutZone).format("Z")
const dateWithLocalZone = [dateWithoutZone, localZone].join("")
return new Date(dateWithLocalZone)
}
const setOtherZone = (date: Date, timezone: string) => {
const dateWithoutZone = moment(date).format("YYYY-MM-DDTHH:mm:ss.SSS")
const otherZone = moment.tz(date, timezone).format("Z")
const dateWithOtherZone = [dateWithoutZone, otherZone].join("")
return new Date(dateWithOtherZone)
}
export default DatePickerWithTimezone
就我而言,我在呈现React dates插件之前设置了defaultTimezone。反应日期将只使用默认时区。
moment.tz.setDefault('America/Los_Angeles');
我正在我的应用程序中使用此库: https://reactdatepicker.com/ 我可以使用一个excludeDates道具,在这里我可以传递一个日期列表,也就是不包括今天和昨天的日期: 我希望有一个更好的方法,而不是将数百个日期传递到该数组中。 谢谢
我有一个react表单,其中我使用react datepicker,当我尝试填充来自数据库的date字段的值时,我得到错误invalid time值。 我尝试过几种时间格式,但都无济于事。下面是我的解决方案。 所选道具中发布日期的值为 问题似乎与日期格式有关,但我不知道所选内容是否可以接受。请让met知道我的问题是否足够清楚。
日期时间选择器是一个定制的picker,因此他的用法和picker完全一致。打开picker的默认值是当前时间,可以通过value参数指定 datetime-picker 定制了 onChange 和 cols 参数,请不要设置这两个参数。 <input type="text" id='datetime-picker'/> <script> $("#datetime-picker").da
我怎样才能使一个字母出现在日历上,而不是两个,例如MO我想成为M。我已经尝试过使用周末短,使三个字母"MON",有人知道如何使"M"
问题内容: 我正在尝试制作类似提醒的应用程序。我想允许用户选择不是现在(至少从现在起5分钟)的日期和时间,并且我也想禁止用户选择距离太远的日期- 例如30天。我创建了datePicker和timePicker,使它们在单击按钮时弹出,但是找不到设置最小值和最大值的方法。 问题答案: 试试这个: 但是,您需要检查用户是否选择了今天的日期,并且时间是否小于当前时间条件。
我想在日期时间选择器中选择大于开始日期的结束日期时间。 当前,我正在开始日期时间和结束日期时间。 假设,我选择了时间为12:00 pm的当前日期,现在end date应该是时间为1:00 pm的当前日期。 我想要下面这样的东西 示例 开始日期和时间:---2019-11-06 12:00结束日期和时间:---2019-11-06 1:00 这是我的代码 null null