【问题标题】:Javascript: Get epoch date as from predefined date is using todays date instead [duplicate]Javascript:从预定义日期获取纪元日期是使用今天的日期[重复]
【发布时间】:2018-10-31 06:20:28
【问题描述】:

JSFiddle:https://jsfiddle.net/u8w3v9fd/1/

我试图从从数据库中传递的日期中获取日期、月份和年份,格式为:DD/MM/YYYY。但是,我什至无法获得要显示的正确日期。

这是我的代码:

var time = "1522843537";

var regDateOriginal = new Date(time);
var regDate = new Date();
regDate.getMonth(regDateOriginal);
regDate.getHours(regDateOriginal);
regDate.getDate(regDateOriginal);

document.write("<p style='color: #fff'>" + regDate.getDate(regDateOriginal) + "</p>");

如你所见,这是返回:

21

今天是哪一天。应该是 4

在过去的 45 分钟里,我用谷歌搜索了它并修改了各种版本。我是一名大三学生,非常感谢一段注释很好的代码,这样我就可以学习,而不仅仅是复制和粘贴。

感谢您的帮助。

【问题讨论】:

  • getMonth、getHours 和 getDate 没有参数。
  • 你已经“用谷歌搜索”了吗?真的吗?您发现什么参考资料表明以这种方式使用这些日期函数中的任何一个都会返回您认为应该返回的结果? Date.prototype.getDate()。这些方法不带参数,并在创建日期对象的“日期”上进行操作。
  • 您需要将 time 乘以 1000 才能从秒转换为毫秒。你需要regDateOriginal.getDate()getDate 方法不带任何参数,因此您将获取 regDate 的日期,即主机的当前日期。

标签: javascript date epoch


【解决方案1】:

来自here

var time = 1522843537;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(time);
console.log(d.getDate());

当然,您仍然可以根据需要执行所有其他 Date 功能。

【讨论】:

  • 抱歉回复晚了。非常感谢您的帮助。
  • new Date(time*1000).getDate() 将在一行代码中实现相同的结果,而不是 3。该值是一个 UNIX 时间戳,它是自 1970-01-01 以来的秒数,而 javascript 使用毫秒,所以它必须是乘以 1000。您应该将其标记为重复。
猜你喜欢
  • 2018-07-27
  • 2012-07-05
  • 1970-01-01
  • 2013-11-11
  • 2021-11-02
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
相关资源
最近更新 更多