在JavaScript

时间:2018-12-04 07:11:30

标签: javascript

我正在使用ASP.NET,并且具有以下字符串:

2018-12-04T13:53:42.6785734+07:00

我想将字符串转换为Date对象并格式化输出字符串。

我的目标:04/12/2018 13:53:42

我已经尝试过这种方法,但是它记录了错误的结果:

var dt = new Date('2018-12-04T13:53:42.6785734+07:00'); 

var day = dt.getDay(),
    month = dt.getMonth(),
    year = dt.getFullYear(),
    hours = dt.getHours(),
    minutes = dt.getMinutes(),
    seconds = dt.getSeconds();
    
// 2/11/2018 13:53:42    
console.log(day + '/' + month + '/' + year + ' ' + hours + ':' + minutes + ':' + seconds);

4 个答案:

答案 0 :(得分:1)

var dt = new Date('2018-12-04T13:53:42.6785734+07:00'); 

var day = dt.getDate(),
month = dt.getMonth(),
year = dt.getFullYear(),
hours = dt.getHours(),
minutes = dt.getMinutes(),
seconds = dt.getSeconds();

// 2/11/2018 13:53:42    
console.log(day + '/' + (month + 1) + '/' + year + ' ' + hours + ':' + minutes + ':' + seconds);

我这样更改了您的代码,请尝试:

var dt = new Date('2018-12-04T13:53:42.6785734+07:00'); 

var day = dt.getDate(),
month = dt.getMonth(),
year = dt.getFullYear(),
hours = dt.getHours(),
minutes = dt.getMinutes(),
seconds = dt.getSeconds();

console.log(day + '/' + (month + 1) + '/' + year + ' ' + hours + ':' + minutes + ':' + seconds);

答案 1 :(得分:0)

可以直接操作原始字符串而不像这样转换为日期对象是否可以接受?我真的可以说出测试用例是什么,但是假设小时数是相同的长度(04,12),我认为下面的代码应该可以工作。

let dt = '2018-12-04T13:53:42.6785734+07:00';
let  dArr = dt.substr(0,10).split('-');
let year = dArr[0];
let month = dArr[1];
let day = dArr[2];
let time = dt.substr(11,8);

let str = month+'/'+day+'/'+year+' '+time;

console.log(str)

答案 2 :(得分:0)

以下是从0开始的数组 getDay()以数字形式表示工作日(0-6) getDate()以数字表示日期(1-31) getMonth()以数字形式表示月份(0-11)

var dt = new Date("2018-12-04T13:53:42.6785734+07:00"); 

var day = returnDay(),
month = returnMonth(),
year = dt.getFullYear(),
hours = dt.getHours(),
minutes = dt.getMinutes(),
seconds = dt.getSeconds(),


function returnDay(){
  var d = (dt.getDate() < 10) ? "0" + (dt.getDate()): dt.getDate();
  return d;
}

function returnMonth(){
  var m = (dt.getMonth() + 1 < 10) ? "0" + (dt.getMonth()+ 1):dt.getMonth()+ 1;
  return m;
}

//04/12/2018 8:53:42
console.log(day + '/' + month + '/' + year + ' ' + hours + ':' + minutes + ':' + seconds);

查看更多信息: https://www.w3schools.com/js/js_date_methods.asp

答案 3 :(得分:0)

切片,我在示例中使用了jQuery,因为我在另一个项目中使用了该代码,但是该代码只是组件的一部分,但这没什么关系

var getTimeOnly = new Date().getTime();
var fullDate = new Date($.now()).toString();
var datePartialTime = fullDate.slice(16, 25);
var datePartialDate = fullDate.slice(0, 16);



$('a').html( "on " + datePartialDate + 'at ' + datePartialTime);

链接到笔

https://codepen.io/damPop/pen/zMzBGN