Преобразование даты и времени в правильный формат даты и времени для дд-ммм-гггг ЧЧ: ММ в додзе - PullRequest
0 голосов
/ 04 октября 2019

Я получаю текущую дату в формате ниже

Fri Oct 04 2019 13:48:00 GMT+0530 (India Standard Time)

Но мне нужно это в формате ниже

04-Oct-2019 19:18

Я получаю первый формат

exports.date = function formatDate(vpDateObj) {
  var vpDate = locale.parse(dateUtils.toString(vpDateObj), {
    datePattern: "dd-MMM-yyyy HH:mm",
    selector: "date"
  });
  alert(vpDate);
  alert(convert(vpDate));
  return vpDate ? vpDate.toString(vpDate) : " ";
};

и я пытаюсь преобразовать в правильный формат, как показано ниже

function convert(str) {
  var date = new Date(str),
    mnth = ("0" + (date.getMonth() + 1)).slice(-2),
    day = ("0" + date.getDate()).slice(-2);
  hours = ("0" + date.getHours()).slice(-2);
  minutes = ("0" + date.getMinutes()).slice(-2);
  return [date.getFullYear(), mnth, day, hours, minutes].join("-");
}

Но здесь GMT+530 hours не добавляется вовремя.

Пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 05 октября 2019

Уверен, что вам нужно здесь преобразовать эту дату локали IST в GMT (что эквивалентно UTC таммежду этими двумя значениями нет количественной разницы) в требуемом формате dd-MMM-yyyy HH:MM

function dateConverter(d) {
  const monthList = [
    "Jan",
    "Feb",
    "Mar",
    "Apr",
    "May",
    "Jun",
    "Jul",
    "Aug",
    "Sep",
    "Oct",
    "Nov",
    "Dec"
  ];

  /*Notice UTC methods are used to take care of 1st day of month and year*/
  const yr = d.getUTCFullYear();
  const mnt = monthList[d.getUTCMonth()];
  const day = d.getUTCDate() < 9 ? "0" + d.getUTCDate() : d.getUTCDate();

  const gmtHr = d.getUTCHours();
  const gmtMin =
d.getUTCMinutes() < 9 ? "0" + d.getUTCMinutes() : d.getUTCMinutes();

  return [day, mnt, yr].join("-") + " " + [gmtHr, gmtMin].join(":");
}
const result = dateConverter(new Date());
//alert("Formatted::" + result);
console.info("Formatted::", result);
0 голосов
/ 05 октября 2019

Используйте locale.format, имейте в виду, что идианское время опережает время по Гринвичу на 5 часов 30 минут, а не назад

должно быть минус 5 часов 30 часов:

require(["dojo/date/locale"
], function(locale) {
  var vpDate  = new Date("Fri Oct 04 2019 15:48:00 GMT+0530 (India Standard Time)");
  
  console.log(vpDate);
  
  var format3 = locale.format( vpDate , {selector:"date", datePattern:"dd-MMM-yyyy HH:mm " } );
    
  
  console.log("dd-MMM-yyyy HH:mm -> ",format3);
  
});
<link href="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet" />
<script>
  dojoConfig = {
    parseOnLoad: true,
    async: true
  };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...