创建新日期时,对象Date()错误

乔尼别科夫

我正在开发新的Angular项目,其中包含有关电影的信息。创建新的不同日期时,我的movie.service.ts中有一个。

这是我的错误

ERROR TypeError: Cannot read property 'year' of undefined
    at new MovieService (movie.service.ts:17)
    at core.js:1461
    at _callFactory (core.js:8223)
    at _createProviderInstance (core.js:8181)
    at resolveNgModuleDep (core.js:8156)
    at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:8849)
    at resolveDep (core.js:9214)
    at createClass (core.js:9086)
    at createDirectiveInstance (core.js:8971)
    at createViewNodes (core.js:10191)

我想在过去的几个月里在剧院放映最近的电影。这是我的src代码

import { Injectable } from '@angular/core';
import { Jsonp } from "@angular/http";
import { HttpClient } from "@angular/common/http";

import {map} from 'rxjs/operators';
import { getLocaleDayNames } from '../../node_modules/@angular/common';

@Injectable({
  providedIn: 'root'
})
export class MovieService {
  date = new Date();
  today = {
    day: this.date.getDate(),
    month: this.date.getMonth(),
    year: this.date.getFullYear(),
    now: `${this.today.year}-${this.today.month}-${this.today.day}`,
    then: `${this.today.year}-${this.today.month - 1}-${this.today.day}`
  };


  apiKey: string = '9e2ecb8b71753c6759e1c9f2cb4f961a';

  constructor(private __jsonp: Jsonp) {
    console.log(`${this.today.now} and ${this.today.then}`);
  }

  getPopular(){
    this.__jsonp.get('https://api.themoviedb.org/3/discover/movie?callback=JSONP_CALLBACK&sort_by=popularity.desc')
      .pipe(map(res => res.json()));  
  }

  getInTheatres(){
    this.__jsonp.get('https://api.themoviedb.org/3//discover/movie?primary_release_date.gte=2014-09-15&primary_release_date.lte=2014-10-22')
  }
}
dAxx_

您试图在创建变量之前初始化变量。实现它的最简单方法是在构造函数中执行。像这样的东西:

  today;
  constructor() {
    const date = new Date();
    const dmy = {
      day: date.getDate(),
      month: date.getMonth(),
      year: date.getFullYear(),
    }
    this.today = {
      day: `${dmy.day}`,
      month: `${dmy.month}`,
      year: `${dmy.year}`,
      now: `${dmy.year}-${dmy.month}-${dmy.day}`,
      then: `${dmy.year}-${dmy.month - 1}-${dmy.day}`
    };
    console.log(this.today)
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建新日期时失效日期?

创建新日期时,如何解决“类型对象'datetime.datetime'没有属性'timedelta'”?

Javascript新日期与新日期对象

更改Date对象的月份而不返回新日期

如何在 mongodb 中为新日期创建新对象?

休眠决定更新对象时,更新日期属性

在Angular中创建新日期时删除时区信息

AppleScript:创建日期对象时出现错误-1728

根据两个日期(创建日期和更新日期)对记录的对象列表进行排序

为什么新日期返回错误的日期?

使用新日期()Android时的日期问题

如何从使用组对象创建的每个组中查找最新日期

Moment.js错误地创建了一个新日期

创建日期对象时发生TypeError

尝试使用 igx-grid 更新日期内联编辑时出现错误消息

尝试查找和自动更新日期时间字段时,SQLALchemy出现错误

插入或更新日期字段时出现以下错误从字符串转换日期和/或时间时转换失败

从对象列表中保留最新日期

使用CEST时区创建新日期

在sql存储过程中找到创建日期和更新日期之间的最新日期

创建类对象时出现类型错误

创建对象时找不到符号错误

创建TextEditingController对象时发生错误

将每日数据转换为每月数据时,熊猫重新采样会创建不在索引中的新日期

创建触发器和存储过程,在用户通过身份验证时更新日期时间

尝试通过在已确定的日期上加上4年来创建新日期时,两个日期都会更改(GregorianCalendar)

日期对象Javascript使用毫秒创建错误的时间

从元组列表[(ID,date),(ID,date)..]创建一个具有唯一ID和最新日期的元组列表

从包含最新日期的数组中获取对象