看起来当我使用该format()函数时,它会自动将原始 UTC 时间转换为我的时区 (UTC+8)。我一直在挖掘他们的文档数小时,似乎无法找到将其默认为 UTC 时间的方法。
import { parseISO, format } from "date-fns";
const time = "2019-10-25T08:10:00Z";
const parsedTime = parseISO(time);
console.log(parsedTime); // 2019-10-25T08:10:00.000Z
const formattedTime = format(parsedTime, "yyyy-MM-dd kk:mm:ss");
console.log(formattedTime); // 2019-10-25 16:10:00 <-- 8 HOURS OFF!!
Run Code Online (Sandbox Code Playgroud)
我试过使用这个包data-fns-tz并使用类似的东西
format(parsedTime, "yyyy-MM-dd kk:mm:ss", {timeZone: "UTC"});
Run Code Online (Sandbox Code Playgroud)
仍然没有运气。
请帮忙!
2019-10-25 08:10:00
2019-10-25 16:10:00
我只想使用 date-fns 验证我收到的字符串是否是有效日期。我会收到像“29/10/1989”这样的日期,BR 日期。我想将其转换为 29-10-1989 并检查其是否有效。任何人都可以帮我解决这个问题吗?
const parsedDate = parseISO('29/10/1989')
Run Code Online (Sandbox Code Playgroud)
上面的代码不起作用,我得到“无效日期”
我正在尝试使用 date-fns 库显示倒计时器并按以下方式执行操作,但无法在反应中找到解决方案。
预期输出:60 天:8 小时:9 分钟:剩余 5 秒
const finishTime = new Date("01/01/2020");
const currentTime = new Date();
Run Code Online (Sandbox Code Playgroud)
将结果添加到数组以便稍后遍历:
results.push(differenceInMonths(finishTime, currentTime));
results.push(differenceInDays(finishTime, currentTime));
results.push(differenceInHours(finishTime, currentTime));
results.push(differenceInMinutes(finishTime, currentTime));
results.push(differenceInSeconds(finishTime, currentTime));
Run Code Online (Sandbox Code Playgroud)
添加手动逻辑以从秒获取时间。显然应该有一个更好的逻辑,使用/不使用该库,这是我所缺少的:
const monthsRemaining = results[4] / (30 * 24 * 3600); // this will anyways fail as 30 days is not common for every month
const daysRemaining = (monthsRemaining % 1) * 30;
const hoursRemaining = (daysRemaining % 1) * 24;
const minutesRemaining = (hoursRemaining % 1) * 60;
const …Run Code Online (Sandbox Code Playgroud) const dt = new Date('2017-12-12');
console.log(format(dt, 'YYYY-MM-DD'));
Run Code Online (Sandbox Code Playgroud)
上述代码在美国记录 2017-12-11,但在印度记录 2017-12-12。
我在这里关注了这个 github 线程并尝试了一些东西,但没有得到想要的结果。
我的期望是无论时区如何打印相同的日期
为什么我需要这个:考虑一个涉及生日的场景。如果我提供一些输入日期,则无论其时区如何,它都必须在所有地区显示为相同的日期。
我正在使用React Material UI,但出现此错误:找不到模块:无法解析“@date-io/date-fns”。
这是我在 package.json 文件中的依赖项:
"dependencies": {
"@date-io/date-fns": "^2.0.0",
"@material-ui/core": "^4.9.5",
"@material-ui/pickers": "^3.2.10",
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"axios": "^0.19.2",
"date-fns": "^2.0.0",
"react": "^16.13.0",
"react-dom": "^16.13.0",
"react-facebook-login": "^4.1.1",
"react-google-login": "^5.1.14",
"react-google-maps": "^9.4.5",
"react-hook-form": "^5.2.0",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
"react-scripts": "3.4.0"
},
Run Code Online (Sandbox Code Playgroud)
我尝试安装最新版本的 date-io/date-fns,然后尝试了 2.0.0 版和 1.0.0 版,但仍然出现相同的错误。
如何设置 MUI 的占位符文本DatePicker。删除输入字段中的文本时显示的文本。我想将文本设置为"tt.mm.jjjj",但总是出现以下错误消息:
Format string contains an unescaped latin alphabet character `j`
Run Code Online (Sandbox Code Playgroud)
<DatePicker
inputFormat="tt.mm.jjjj"
label="Basic example"
value={value}
onChange={(newValue) => {
setValue(newValue);
}}
renderInput={(params) => <TextField placeholder="tt.mm.jjjj" {...params} />}
/>
Run Code Online (Sandbox Code Playgroud) 如何获得主格格式的月份名称?
\nimport { format } from 'date-fns'; \nimport { ru } from 'date-fns/locale';\n\nformat(new Date(), 'MMMM', { locale: ru }); // \xd0\xb8\xd1\x8e\xd0\xbd\xd1\x8f\nRun Code Online (Sandbox Code Playgroud)\n我怎样才能得到像这样的名字\xd1\x8e\xd0\xb8\xd0\xbd\xd1\x8c而不是\xd0\xb8\xd1\x8e\xd0\xbd\xd1\x8f?
我正在使用react-datepicker和date-fns在我的网络应用程序中显示带有匈牙利语言环境的日期选择器,但我找不到一种方法让它显示从星期一开始的一周日期,而不是按照匈牙利惯例从星期日开始。日期选择器看起来像这样(V 是 Vas\xc3\xa1rnap 的缩写,这当然意味着星期日):
这是我用来渲染它的代码:
\nimport DatePicker, { registerLocale } from "react-datepicker";\nimport "react-datepicker/dist/react-datepicker.css";\nimport hu from "date-fns/locale/hu";\n\nregisterLocale("hu", hu);\n\nexport function CustomDatepicker(props) {\n return (\n <DatePicker className="form-control" selected={props.date} \n onChange={ props.onChange } dropdownMode="select"\n dateFormat="yyyy.MM.dd." todayButton="Ma" closeOnScroll={true}\n locale="hu" />\n );\n}\nRun Code Online (Sandbox Code Playgroud)\n我还尝试实现这项工作的一个想法是我在这个 GitHub 问题中找到的以下代码(将数字 0 修改为 1):
\nregisterLocale("hu", { ...hu, options: { ...hu.options, weekStartsOn: 1 } });\nRun Code Online (Sandbox Code Playgroud)\n有没有其他方法可以完成这项工作,或者我应该使用不同的包进行本地化?
\n我有一个带有一些时间戳的日志文件
2020-12-03 08:30:00
2020-12-03 08:40:00
...
Run Code Online (Sandbox Code Playgroud)
我从日志提供商的文档中知道时间戳是用 UTC 编写的(尽管不使用 ISO 格式)
现在我想用 date-fns 解析它们:
const toParse = "2020-12-03 08:40:00"
parse(toParse, 'yyyy-MM-dd HH:mm:ss', new Date()).toISOString()
Run Code Online (Sandbox Code Playgroud)
因为我的计算机的区域设置是 UTC+1,所以我看到的是:
> "2020-12-03T07:40:00Z"
Run Code Online (Sandbox Code Playgroud)
预期的:
> "2020-12-03T08:40:00Z".
Run Code Online (Sandbox Code Playgroud)
这是我目前用来告诉 date-fns 解析为 UTC 的技巧:
const toParse = "2020-12-03 08:40:00"
parse(toParse + '+00', 'yyyy-MM-dd HH:mm:ss' + 'X', new Date()).toISOString()
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,
> "2020-12-03T08:40:00Z".
Run Code Online (Sandbox Code Playgroud)
有没有使用 date-fns 执行此操作的正确方法?寻找相当于 moment 的moment.utc()
我正在使用 date-fns 我想将 new Date(2020,1,10) 转换为“星期四”。我正在尝试使用
dateFns.format(new Date(2020,1,10),'dddd')
Run Code Online (Sandbox Code Playgroud)
但它返回0001?
提前致谢
date-fns ×10
javascript ×6
reactjs ×4
datetime ×3
date ×2
material-ui ×2
locale ×1
location ×1
node.js ×1
timezone ×1
typescript ×1