tes*_*123 27 javascript date isodate momentjs
我有一个我想要的日期对象
例如:
var date = new Date();
//Wed Mar 02 2016 16:54:13 GMT-0500 (EST)
var stringDate = moment(date).toISOString();
//2016-03-02T21:54:13.537Z
Run Code Online (Sandbox Code Playgroud)
但最终我真正想要的是
stringDate = '2016-03-02T21:54:00.000Z'
Run Code Online (Sandbox Code Playgroud)
jsz*_*ody 33
虽然这很容易通过简单的javascript解决(请参阅RobG的回答),但我想向您展示momentjs解决方案,因为您将问题标记为momentjs:
moment().seconds(0).milliseconds(0).toISOString();
Run Code Online (Sandbox Code Playgroud)
这为您提供了当前的日期时间,没有秒或毫秒.
工作示例:http://jsbin.com/bemalapuyi/edit?html,js,output
来自文档:http://momentjs.com/docs/#/get-set/
Rob*_*obG 32
不需要库,只需将秒和毫秒设置为零并使用内置的toISOString方法:
var d = new Date();
d.setSeconds(0,0);
document.write(d.toISOString());Run Code Online (Sandbox Code Playgroud)
注意:IE 8及更低版本不支持toISOString ,MDN上有一个pollyfil.
执行此操作的非库正则表达式:
new Date().toISOString().replace(/.\d+Z$/g, "Z");
Run Code Online (Sandbox Code Playgroud)
这只会减少不必要的部分。不希望四舍五入。
这里有点晚了,但现在你可以:
var date = new Date();
这个obj有:
date.setMilliseconds(0);
和
date.setSeconds(0);
然后toISOString()像你一样打电话,你会没事的.
没有时刻或其他deps.
您可以将milliseconds 设置为,然后使用Luxon0抑制毫秒。suppressMilliseconds
DateTime.now().toUTC().set({ millisecond: 0 }).toISO({
suppressMilliseconds: true,
includeOffset: true,
format: 'extended',
}),
Run Code Online (Sandbox Code Playgroud)
导致例如
2022-05-06T14:17:26Z
也可以抑制秒数:
const now = DateTime.now();
console.log("now as TS", now.toMillis());
const x = now.toUTC().set({ millisecond: 0, second: 0 }).toISO({
includeOffset: true,
format: "extended"
});
console.log("stripped as ISO", x);
console.log("stripped as TS", DateTime.fromISO(x).toMillis());
Run Code Online (Sandbox Code Playgroud)
这是一个交互式示例(CodeSandbox): https://codesandbox.io/s/angry-cerf-gl9nsc ?file=/src/index.js
| 归档时间: |
|
| 查看次数: |
49543 次 |
| 最近记录: |