角度2中的日期转换CST

时间:2017-05-05 10:48:23

标签: javascript angularjs date ionic2

我从json API获得时间如“DOB”:“/ Date(862588800000 + 0800)/”但我必须将其转换为类似Date Format:04/28/2017 10:20:05(MM / dd / yyyy HH:mm:sss)。需要帮助

2 个答案:

答案 0 :(得分:2)

您可以先将值解析为Date对象,然后格式化输出。

第一个数字部分似乎是一个时间值,即自纪元(1970-01-01)以来的毫秒数,后跟HHMM中的时区偏移量。在纪元之前的时间值是负数,因此获得部分的正则表达式可能是:

/[+-]?\d+/g

应该匹配时间值和偏移量。

时间值可以通过偏移来调整,然后用于创建Date(传递给Date构造函数的值需要是一个数字,或者它将被解析为好像它是一个字符串):



function parseDate(s) {
  // Get the parts
  var b = s.match(/[+-]?\d+/g);

  // If appears invalid, return invalid Date      
  if (!b || b.length != 2) return new Date(NaN);
  
  // Get sign of offset
  var sign = +b[1] < 0? -1 : 1;

  // Convert offset to milliseconds
  // Multiplication converts the strings to numbers so + adds
  var offset = sign * b[1].substr(1,2)*3.6e6 + b[1].substr(3,2)*6e4;

  // Adjust time value by offset, create a Date and return it
  // Subtraction also converts the time value to a number
  return new Date(b[0] - offset);
}

var s = '/Date(862588800000+0800)/';

console.log(parseDate(s));
&#13;
&#13;
&#13;

验证还可以使用正则表达式,如:

/\(-?\d+[+-]\d{4}\)/.test(s)

至于格式化日期,已经有很多问题,请参阅Where can I find documentation on formatting a date in JavaScript?

答案 1 :(得分:0)

在这里,我想您正在内部或元素中显示日期。有角的约会管概念。对于给定的日期,它将转换为格式

例如:

{{document.lastUpdateDateTime |日期:“ MM / dd / yyyy h:mma”:'CST6CDT'}}

它将以 MM / dd / yyyy h:mm:SS S格式表示日期。

请仔细阅读。

https://angular.io/api/common/DatePipe

[https://www.prokerala.com/travel/timezones/CST6CDT][2]

如果您想以自己的方式表示日期。您可以这样写。

<td>{{document.lastUpdateDateTime | date:"MM/dd/yyyy h:mma" :'CST6CDT'}}</td>

您可以用自己的方式自定义此功能以获得所需的结果

在控制器内部编写函数。

    $scope.getCSTDateTime= function(lastUpdateDateTime) {
     var currentDate = new Date(lastUpdateDateTime);
     console.log("Current Date is :" + currentDate);


     var h = currentDate .getHours();
     var mm = currentDate .getMinutes();
     var SSS = currentDate .getSeconds();

      //date:"MM/dd/yyyy h:mma" :'CDT'
      var month = currentDate .getUTCMonth() + 1; //months from 1-12
      var day = currentDate .getUTCDate();
      var year = currentDate .getUTCFullYear();
      return     month + "/" + day + "/" +year +" "+h+":"+mm+":"+SSS;
};