Как добавить форматирование даты в пользовательском интерфейсе, чтобы поставить метки времени в местном часовом поясе пользователя в NodeJS - PullRequest
0 голосов
/ 05 февраля 2019

Я создал приложение, в котором он отслеживает различные типы ошибок, которые были созданы.Название, описание и когда ошибка была открыта, это информация, указанная в пользовательском интерфейсе.Внутри «td.opened-cell» дата и время отображаются в следующем формате: «2019-01-26 | 16: 28: 29».Этот формат взят из серверной части, написанной на Python.

Я хочу иметь возможность добавлять форматирование даты в пользовательском интерфейсе, чтобы ставить временные метки в местном часовом поясе пользователя.До сих пор я пытался использовать модуль dateformat, но, похоже, он работает не так, как ожидалось, скорее он продолжает обновлять дату и время для каждой созданной ошибки, в результате чего каждый элемент в последнем имеет ту же дату и время, что и ".выглядишь правильно для пользователя, использующего мое приложение.Пока что мой файл index.js выглядит следующим образом:

const m = require('mithril')
var dateFormat = require('dateformat')

class IssuesList {
  constructor(vnode) {
    this.model = vnode.attrs.model
  }
  oninit() {
    this.model.loadIssues()

  }
  view() {

    return m('table.table', [

      m('thead', [
        m('th', 'title'),
        m('th', 'opened'),
        m('th', 'closed')

      ]),
      m('tbody', [

        this.model.list.map(item =>

          m('tr', [
            m('td.title-cell', m("a", {href: `/issues/${item.id}`, oncreate: m.route.link}, item.title)),
            m('td.opened-cell', item.opened ,dateFormat(new Date()),
            m('td.closed-cell', item.closed))
          ])
        )
      ])
    ])
  }
}

Мой скрипт на python resources.py выглядит следующим образом:

from __future__ import absolute_import
import falcon


def _issue_to_json(issue):
    return {
        'id': issue.id,
        'title': issue.title,
        'description': issue.description,
        'opened': issue.opened.isoformat("|") if issue.opened else None,
        'closed': issue.closed.isoformat("|") if issue.closed else None,
    }


class IssuesResource(object):
    def __init__(self, repo):
        self._repo = repo

    def on_get(self, req, resp):
        with self._repo.open() as repo:
            issue_list = repo.issues.list_issues()
            resp.media = {
                'issues': [_issue_to_json(issue) for issue in issue_list]
            }
            resp.status = falcon.HTTP_200

    def on_post(self, req, resp):
        with self._repo.open() as repo:
            new_issue = req.media
            new_id = repo.issues.create_issue(
                new_issue['title'],
                new_issue['description']
            )
        raise falcon.HTTPSeeOther('/issues/{}'.format(new_id))


class IssueResource(object):
    def __init__(self, repo):
        self._repo = repo

    def on_get(self, req, resp, issue_id):
        with self._repo.open() as repo:
            issue = repo.issues.fetch_issue(int(issue_id))
            if issue :
                resp.media = _issue_to_json(issue)
                resp.status = falcon.HTTP_200
            else:
                resp.status = falcon.HTTP_404

    def on_put(self, req, resp, issue_id):
        with self._repo.open() as repo:
            update = req.media
            repo.issues.update_issue(issue_id, **update)
            resp.status = falcon.HTTP_200

    def on_delete(self, req, resp, issue_id):
        with self._repo.open() as repo:
            repo.issues.delete_issue(issue_id)
            resp.status = falcon.HTTP_200

Я пытался просмотреть различные другие вопросы, связанные со стековым потоком, используя момент.js, а также модуль datejs для nodejs.

Я ожидаю, что выходные данные будут иметь хорошо отформатированные дату и время следующим образом:

Понедельник, 5 января, 09:15:45

...