2017-04-07 94 views
1

我使用simple-parsermail-parser解析某些电子邮件(与node-mbox组合)。这些都是美好的库,我有这一切工作,但我有问题的JavaScript Date对象。与Javascript日期对象混淆

按照simple-parser docs一个解析的电子邮件的日期为Date对象:

日期是日期Date对象:头

但由于某些原因,我不能与它一起作为一个对象。我想提取date.year,date.month等。如果我记录它,它似乎是一个对象 - 但我不能像这样对待它:例如在myDate.year之下的示例报告为未定义。

我在这里做错了什么?如果我将mail.date作为字符串处理并尝试创建新的Date对象,它仍然无法正常工作。


console.log('mail', mail); 
var myDate = mail.date; 
console.log('myDate', myDate, typeof myDate); 
console.log('year', myDate.year) 

控制台输出:

enter image description here

+2

Javascript'Date'对象的文档是[here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) – Barmar

回答

3

如果它的JavaScript Date对象,拿到一年你可以使用getFullYear()功能 - 这不是存储为财产“年”对象:

var date = new Date(); 
var year = date.getFullYear(); //2017 
var month = date.getMonth(); //3 [starts w/ 0] 
var day = date.getDate(); //6 
+0

谢谢...我感觉像个白痴。我为什么认为它们是日期对象的属性? –

+0

哈哈不用担心!很高兴帮助 – hackerrdave

+2

@ NoGrabbing-如果今天写,它可能是一个吸气的财产。 [* ECMA-262 *](http://www.ecma-international.org/ecma-262/7.0/index.html#sec-date.prototype.getfullyear)要求每次计算值(尽管可能的实现除非系统设置发生变化,否则不进行实际优化。 – RobG