如何克隆日期对象?

新手上路,请多包涵

Date 变量分配给另一个变量会将引用复制到同一实例。这意味着改变一个会改变另一个。

我如何实际克隆或复制 Date 实例?

原文由 Árvíztűrő tükörfúrógép 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 590
2 个回答

使用 Date 对象的 getTime() 方法,它返回自 1970 年 1 月 1 日 00:00:00 UTC( 纪元时间)以来的毫秒数:

 var date = new Date();
var copiedDate = new Date(date.getTime());

在 Safari 4 中,您还可以这样写:

 var date = new Date();
var copiedDate = new Date(date);

…但我不确定这是否适用于其他浏览器。 (它似乎在 IE8 中工作)。

原文由 Steve Harrison 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是最干净的方法

 let date = new Date()
let copyOfDate = new Date(date.valueOf())

console.log(date);
console.log(copyOfDate);

原文由 AnthonyWJones 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题