我尝试了以下帖子中的建议,并查看了Moment.js转换日期UTC给出错误日期的文档
moment.utc('Wed Sep 08 1999 00:00:00 GMT+0100').toJSON()
但最终结果是结果为1999-09-07T23:00:00.000z,因此没有存储正确的输入日期。
我现在正在使用以下formatDate函数格式化日期。但是,当我将计算机上的时区更改为智利时,日期1999-09-07 GMT-0200变为1999-09-08T00:00:00.000Z。
const formatDate = (v) => {
console.log(v)
const date = moment(v).format('YYYY-MM-DD')
console.log(moment.utc(date).toJSON())
return moment.utc(date).toJSON()
}
是不是我错过了什么?
我尝试了这个问题的不同变通方法,但在最后,您可以找到我创建的最可行的变通方法,如下所示。
这个变体的主要思想是在输入字段内部显示想要的TZ,但在日历和时间列表内部显示本地TZ。
如能得到您的反馈,我将不胜感激。
import React, { useState, useMemo, useCallback } from 'react';
import moment from 'moment-timezone';
import DateTimePickerOrigin from 'react-widgets/lib/DateTimePicker';
const monthShortNames = [
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',
];
const dayShortNames = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
const DateTimePicker = (props) => {
const {
tz, // <-- tz you want to display, eg 'Etc/UTC'
min,
max,
value,
onChange,
...tail
} = props;
const [localTz] = useState(moment.tz.guess());
const fixedParse = useCallback(
(dateStr) => (dateStr ? new Date(dateStr) : null),
[],
);
const fixedFormat = 'MMM D, YYYY HH:mm z';
const fixedTimeFormat = useCallback(
(date) => {
if (localTz !== tz) {
return `${moment.tz(date, localTz).format('HH:mm z')} (${moment.tz(date, tz).format('HH:mm z')})`;
}
return moment.tz(date, localTz).format('HH:mm');
},
[tz, localTz, fixedFormat],
);
const fixedDateFormat = useCallback(
(date) => String(date.getDate()),
[],
);
const fixedYearFormat = useCallback(
(date) => String(date.getFullYear()),
[],
);
const fixedMonthFormat = useCallback(
(date) => monthShortNames[date.getMonth()],
[],
);
const fixedDayFormat = useCallback(
(date) => dayShortNames[date.getDay()],
[],
);
const fixedMin = useMemo(
() => (min === null ? undefined : min),
[min],
);
const fixedMax = useMemo(
() => (max === null ? undefined : max),
[max],
);
return (
<DateTimePickerOrigin
{...tail}
parse={fixedParse}
format={fixedFormat}
timeFormat={fixedTimeFormat}
dateFormat={fixedDateFormat}
yearFormat={fixedYearFormat}
monthFormat={fixedMonthFormat}
dayFormat={fixedDayFormat}
min={fixedMin}
max={fixedMax}
value={value}
onChange={onChange}
/>
);
};
我试图在flutter中创建一个布局,由一行和两个子小部件组成,第一个子部件向左对齐,第二个子部件向右对齐,如果容器太窄,这也将包装小部件。 这类似于这里提出的问题:Flutter将两个项极端地对齐--一个在左边,一个在右边,这可以通过小部件来解决,小部件具有。然而,当小部件使用此方法包装时,包装到新运行的右小部件不再右对齐。(截图) 我希望发生的是,右边的小部件在包装时保持与右边对齐。在使用fl
在crosswalk中,可以使用cordova插件 而cordova inAppBrowser似乎工作得很好。但它仍然使用旧的android浏览器,而不是crosswalk chromium(因此不支持所需的HTML5功能)。 我可以通过检查user-agent(例如:
问题内容: 在浏览器中,如果从调用的函数中使用,则将强制执行至少4ms的延迟。Mozilla的开发人员Wiki 描述了此行为,并提到该行为已在HTML5中标准化。 Node.js的文档未提及最小延迟。但是,该函数的文档将其描述为的更有效的替代方法。这表明它有更高的效率,因为它避免了这种延迟。否则可能会被优化以表现出相同的行为。 是否像网络浏览器一样,Node.js对setTimeout实施了最小延
问题内容: 当我使用fputcsv将行写出到打开的文件句柄时,PHP会将封闭字符添加到它认为需要的任何列中,而其他列将不包含任何封闭物。 例如,您可能会得到这样的一行 除了在每个字段的末尾添加虚假空格之外,是否有任何方法可以强制fputcsv始终将列包含在外壳中(默认为“”)? 问题答案: 不,fputcsv()仅在以下情况下封闭该字段 没有“始终封闭”选项。
在Hibernate中,要指定用于加入关联的列,请使用@JoinCol列注释,例如: 在大多数情况下,列的名称是用大写的类名加上。因此,从Hibernate自动派生它是合理的(例如,在Django的ORM中就是这样做的)。但这样的行为是以某种方式实施的吗?
我现在已经切换到Android Studio,并用源代码树在Git中保存我的项目。每当我从模块中添加或删除任何库时,它的.iml文件也会更改。如果我提交*.iml真的无关紧要,因为它们是在其他Android Studio中自动生成的。但是,在这里它说您应该存储*.iml。我的问题是,我们真的需要和别人分享我们的*.iml吗?若有,原因为何?