无法将字符串转换为DateTime

时间:2020-07-29 14:01:59

标签: javascript json

需要某人协助出现以下错误的新手:)。

无法将字符串转换为DateTime:30-06-2020 01:05:00

在尝试将json动态数据处理到另一台服务器时出现。

PHP脚本,调用javascript海报;

        var LPOSdateTime = moment(dateTime).format(" DD-MM-YYYY hh:mm:ss");

2 个答案:

答案 0 :(得分:1)

您可以使用moment.js库。

然后简单地:

var stringDate = '01-01-1970 00:03:44';
var momentDateObj = moment(stringDate);

还可以检出自己的api,帮助格式化,添加和减去(天,月,年,其他矩对象)。

Ferdo

答案 1 :(得分:0)

对于这种格式(假设datepart的格式为dd-mm-yyyy),在普通javascript中使用dateString2Date。

添加了ES6实用程序方法,该方法使用格式字符串参数(格式)来解析日期字符串,以通知该方法有关输入字符串中日期/月份/年份的位置。

var result = document.querySelector('#result');

result.textContent = 
  `*Fixed\ndateString2Date('01-01-2016 00:03:44'):\n => ${
    dateString2Date('01-01-2016 00:03:44')}`;

result.textContent += 
  `\n\n*With formatting\ntryParseDateFromString('01-01-2016 00:03:44', 'dmy'):\n => ${
  tryParseDateFromString('01-01-2016 00:03:44', "dmy").toUTCString()}`;

result.textContent += 
  `\n\nWith formatting\ntryParseDateFromString('03/01/2016', 'mdy'):\n => ${
  tryParseDateFromString('03/01/1943', "mdy").toUTCString()}`;

// fixed format dd-mm-yyyy
function dateString2Date(dateString) {
  var dt  = dateString.split(/\-|\s/);
  return new Date(dt.slice(0,3).reverse().join('-') + ' ' + dt[3]);
}

// multiple formats (e.g. yyyy/mm/dd or mm-dd-yyyy etc.)
function tryParseDateFromString(dateStringCandidateValue, format = "ymd") {
  if (!dateStringCandidateValue) { return null; }
  let mapFormat = format
          .split("")
          .reduce(function (a, b, i) { a[b] = i; return a;}, {});
  const dateStr2Array = dateStringCandidateValue.split(/[ :\-\/]/g);
  const datePart = dateStr2Array.slice(0, 3);
  let datePartFormatted = [
          +datePart[mapFormat.y],
          +datePart[mapFormat.m]-1,
          +datePart[mapFormat.d] ];
  if (dateStr2Array.length > 3) {
      dateStr2Array.slice(3).forEach(t => datePartFormatted.push(+t));
  }
  // test date validity according to given [format]
  const dateTrial = new Date(Date.UTC.apply(null, datePartFormatted));
  return dateTrial && dateTrial.getFullYear() === datePartFormatted[0] &&
         dateTrial.getMonth() === datePartFormatted[1] &&
         dateTrial.getDate() === datePartFormatted[2]
            ? dateTrial :
            null;
}
<pre id="result"></pre>