Javascript-如何删除字符串的一部分并将其分配给变量进行操作?字符串是可变的

Javascript - How can I remove portion of a string and assign it to a variable for manipulation? String is varied

本文关键字:字符串 变量 操作 分配 何删除 删除 Javascript- 一部分      更新时间:2023-09-26

我有一个API调用,它返回"/Date(1425715200000)/"作为JSON对象的一部分。我需要能够对此进行评估并返回人类可读的日期。API文档充其量也不多。我甚至不知道他们为什么不把时间以毫秒为单位存储为整数。

不确定将/Date(1425715200000)/this转换和评估为2015年3月7日输出的最佳方式。

用于替换"/"字符。

x = x.replace(/'//g,'');

您必须添加自定义代码来解析以毫秒为单位的时间,并从中创建一个新的Date()对象。然后提取日期对象的月-日和年属性。

注意.getMonth,因为它将返回0-11之间的值。

var jsonObj = {
	date :"/Date(1425715200000)/"
}
function parseDateString( dateObjString ){
  var startIndex 	= dateObjString.indexOf("(") + 1;
  var endIndex 		= dateObjString.indexOf(")");
  var timeInMilli 	= dateObjString.substring( startIndex, endIndex);
  var displayDate;
  var date			= new Date();
  	  date.setTime( timeInMilli );
  
  displayDate = ( date.getMonth() + 1 ) + "/" + date.getDate() + "/" + date.getFullYear();
  alert( displayDate );
}
parseDateString( jsonObj.date );

使用此示例,您将检索一个可以根据需要显示的Date实例:

var result = "/Date(1425715200000)/";
result = result.replace(/'/Date'(('d*?)')'//, "$1");
result = new Date(1 * result);
document.getElementById("output").textContent = result;
<span id="output"></span>

我的评论有更多细节。。。

var test = "''Date(1425715200000)''";
var time = test.match(/'d+/)[0];
var intTime = parseInt(time);
var date = new Date(intTime);
console.log(date); // Sat Mar 07 2015 02:00:00 GMT-0600 (CST)
console.log((date.getUTCMonth() + 1) + "/" + date.getUTCDate() + "/" + date.getUTCYear()); // 03/07/14

使用regex提取时间戳,然后创建Date类的实例。

var result = {
    date: "/Date(1425715200000)/"
};
var ts, parts = result.date.match(/'/Date'(([0-9]+)')'//);
if (parts && parts.length == 2) {
    ts = parseInt(parts[1]);
}
if (ts) {
    var date = new Date(ts);
    
    var str = (date.getMonth() + 1) + "/" + date.getDate() + "/" + date.getFullYear();
    console.log(str);
    document.getElementById("output").textContent = str;
}
<span id="output"></span>

尝试以下操作:

var dt = new Date(parseInt('/Date(1425715200000)/'));
var month = dt.getMonth()++, date = dt.getDate(), year = dt.getYFulllYear();
console.log(month+'/'+date+'/'+year.substr(2));