Advertisement
avr39-ripe

newsClass

Apr 9th, 2020
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class News
  2. {
  3.     constructor(title='Oh, damn!', date=new Date(), text='', tags='')
  4.     {
  5.         this._title = title;
  6.         this._date = date;
  7.         this._text = text;
  8.         this._tags = tags.split(' ');
  9.     }
  10.     _toHtml()
  11.     {
  12.         let html=`<h1>${this._title}</h1>`;
  13.         let now = new Date();
  14.         let dateStr = '';
  15.  
  16.         let days =(now.getTime() - this._date.getTime());
  17.         days /= (1000 * 60 * 60 * 24);
  18.         days = Math.abs(Math.floor(days));
  19.        
  20.         if ( days <= 7 )
  21.         {
  22.             dateStr = `${days} day(s) ago`;
  23.         }
  24.         else
  25.         {
  26.             dateStr = `${String(this._date.getDate()).padStart(2,0) + '.' + String(this._date.getMonth()+1).padStart(2,0) + '.' +String(this._date.getFullYear())}`;
  27.         };
  28.         html+=`<time>${dateStr}</time><br/>`;
  29.         html+=`<p>${this._text}</p>`;
  30.         let tagsStr = this._tags.reduce((prev,it)=>{ return `${prev}#${it} `;},'');
  31.         html+=`<em>${tagsStr}</em>`;
  32.         html=`<article>${html}</article>`;
  33.         return html;
  34.     }
  35.     render()
  36.     {
  37.         document.write(this._toHtml());
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement