Вычтите 2 даты в Angular - PullRequest
       3

Вычтите 2 даты в Angular

0 голосов
/ 03 июля 2018

Я пытаюсь сделать функцию, которая возвращает weekNumber, и в последней строке я получаю сообщение о том, что «Правая / левая сторона арифметической операции должна быть любым числом или перечислением»

есть ли решение?

weekNumber(d: Date) {
d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
    // set thursday: current date + 4 - current day
    // make sunday number 7
    d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
    // first day of year
    const firstDayOfYear = new Date(Date.UTC(d.getFullYear(), 0 , 1 ));
    const  yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0 , 1 ));
    firstDayOfYear.getFullYear();
    // calculate full weeks to nearest thrusday
    const weekNo = Math.ceil(( ((d - yearStart) / 86400000) + 1) / 7);
}

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете использовать any для этой проблемы

weekNumber(d: any) {
        d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()));
        // set thursday: current date + 4 - current day
        // make sunday number 7
        d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
        // first day of year
        const firstDayOfYear = new Date(Date.UTC(d.getFullYear(), 0, 1));
        const yearStart = <any>new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
        firstDayOfYear.getFullYear();
        // calculate full weeks to nearest thrusday
        const weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
}

ИЛИ другое решение

Вы можете использовать moment для этой проблемы

установка moment библиотека

npm install moment --save

import moment from 'moment';
export class AppComponent {
    weekNumber(d: Date) {
        const weekNo = moment(d).week()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...