0

有没有办法从 HTML 对象的格式中获取日期对象####-##-##并将其转换为纪元时间。例如,用户输入 2012 年 8 月 12 日的值,当我打印出它的 .val() 时显示为 2012-08-12,我需要在 Epoch 时间得到它。

编辑

迄今为止的代码:

if (hvStartDate == "") {
    hvStartDate = "start"
} 
else {
    console.log($("#hv-start-date").val()); // => 2012-08-20
    hvStartDate = new Date($("#hv-start-date").val()).getTime(); // => NaN
}
if (hvEndDate == "") {
    hvEndDate = "end"
} 
else {
    hvEndDate = new Date($("#hv-end-date").val()).getTime(); // => NaN
}

var myTmp = new Date("2012-08-20");
console.log(myTmp.getTime()); // => NaN
4

2 回答 2

6

Javascript 的Date内置允许您将日期字符串传递到其构造函数中,从而为您提供基于该字符串的日期。从那里开始,呼叫getTime( )将为您提供纪元时间。

new Date($('.user-value').val()).getTime();  // => epoch time
new Date('2012-08-12').getTime();  // 1344729600000

警告:注意区域设置字符串和特定区域设置的日期格式(例如,日期和月份的位置会根据区域设置切换)。

编辑:根据您在下面评论中的代码,这就是您需要做的。请注意,您必须在调用之前getTime()实例化一个新的 Date 对象:

if (hvStartDate == "") {
    hvStartDate = "start"
} 
else {
    hvStartDate = new Date($("#hv-start-date").val()).getTime();
}
于 2012-08-20T15:33:59.120 回答
3

只需使用该getTime()功能。它返回自 Epoch 以来的毫秒数:

  var msSinceEpoch = myDate.getTime();

MDN 上的完整日期参考:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

编辑:如果你也必须解析它,你可以:

  • new Date(theString)如果它具有良好的格式,请使用
  • 解析后为自己设置不同的日期字段(请参阅参考资料)
  • 使用日期解析库。我使用这个:http ://www.datejs.com/ ,它对所有日期解析、计算和格式化都非常强大。
于 2012-08-20T15:31:31.677 回答