javascript - 对象的 getFullYear()

标签 javascript date object

不确定标题,但我对对象文字值有疑问。我有一个名为“人”的对象,其中包含名字、姓氏、国籍和出生。当我初始化它时,我将一些值带入对象中,“出生”值以“YYYY-MM-DD”的形式出现,但我必须提供全年“YYYY”。

let person = {
    firstName: '',
    lastName: '',
    nationality: '',
    born: '',

    print3: function() {
    return 'My name is ' + this.firstName + ' ' + this.lastName + ' from ' + this.nationality + '.' + ' I was born ' + this.born + '.';
    },

    init: function(firstName, lastName, nationality, born) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.nationality = nationality;
        this.born = born;
    }
};

初始化:

person2.init('Henri', 'Becquerel', 'France', '1852-12-15')

预期结果应该是:

"My name is Henri Becquerel from France. I was born 1852."

我知道我必须在代码中的某个地方使用 .getFullYear 函数,但我已经尝试了所有我能想到的地方,但我没有想法。

问候

最佳答案

new Date() 将像您一样解析 ISO 8601 格式的字符串。因此,您的 init() 函数可以保存日期对象而不是字符串。然后你可以在 this.born 上调用 getFullYear():

let person = {
  firstName: '',
  lastName: '',
  nationality: '',
  born: '',

  print3: function() {
    return 'My name is ' + this.firstName + ' ' + this.lastName + ' from ' + this.nationality + '.' + ' I was born ' + this.born.getFullYear() + '.';
  },

  init: function(firstName, lastName, nationality, born) {
    this.firstName = firstName;
    this.lastName = lastName;
    this.nationality = nationality;
    this.born = new Date(born);  // create a Date object
  }
};

person.init('Henri', 'Becquerel', 'France', '1852-12-15')
console.log(person.print3())

关于javascript - 对象的 getFullYear(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53622890/

相关文章:

javascript - jQuery 圆形菜单导航在切换关闭后创建小圆圈

javascript - Cordova - jquery mobile img 路径

java - 是否可以在 xslt 中格式化一个大的小数日期

C++,处理多个构造函数重载和冗余代码

swift - 使用 UIButton 选择并使用 segue 移动特定模型数据

javascript - Javascript 正则表达式不区分大小写

javascript - 有人请解释工具链/样板的工作流程,例如 ember-skeletal 或 iridium

javascript - 我可以在d3.js中使用drag.container来限制拖动区域吗?

php - PHP 中两个日期之间的完整天数?

javascript - new 运算符在 JavaScript 中是如何工作的?