2017-03-17 73 views
2

我有一个日期时间对象,其值如下转换日期对象在DD/MM/YYYY HH:mm:ss格式

2017-03-16T17:46:53.677 

可有人请让我知道如何将它转换为DD/MM/yyyy hh:mm:ss格式 我搜索了一个lott,并找不到此特定输入的格式转换。

+0

哇...这些答案都太可怕了。得讨厌js。 – surfer190

回答

4

在其他帖子中提到您可以完全格式化字符串。但我认为你最好在日期对象中使用locale函数?

var d = new Date("2017-03-16T17:46:53.677"); 
 
console.log(d.toLocaleString());

编辑:

ISO 8601(你与构建格式)规定的时间段在与[{+|-}hh][:mm]在字符串的结尾结束追加。

,所以你可以这样做:

var tzOffset = "+07:00" 
 
var d = new Date("2017-03-16T17:46:53.677"+ tzOffset); 
 
console.log(d.toLocaleString()); 
 
var d = new Date("2017-03-16T17:46:53.677"); // assumes local time. 
 
console.log(d.toLocaleString()); 
 
var d = new Date("2017-03-16T17:46:53.677Z"); // UTC time 
 
console.log(d.toLocaleString());

编辑:

只要你知道的locale功能显示在用户语言的方式的日期和时间和位置。欧洲日期是dd/mm/yyyy,美国是mm/dd/yyyy

var d = new Date("2017-03-16T17:46:53.677"); 
 
console.log(d.toLocaleString("en-US")); 
 
console.log(d.toLocaleString("en-GB"));

+0

@ com3lius-这工作正常。我可以通过这个获得正确的格式。但我的当地时间是上午11点30分,它显示了上午4点30分。我怎样才能将7小时的偏移量添加到您的上述代码中? – Rihana

+0

* toLocaleString *的结果完全取决于实现,它在不同的主机中返回不同的结果。没有办法保证它适合OP的格式。 – RobG

+0

@RobG - 完全同意它依赖于区域设置视图的日期。我注意到,我的语言环境没有显示为OP所请求的“mm/dd”而不是“dd/mm”。但那是美国读取日期的正常方式。 – corn3lius

5

这是我使用:

function getDate() { 
 
    var date = new Date(), 
 
    year = date.getFullYear(), 
 
    month = (date.getMonth() + 1).toString(), 
 
    formatedMonth = (month.length === 1) ? ("0" + month) : month, 
 
    day = date.getDate().toString(), 
 
    formatedDay = (day.length === 1) ? ("0" + day) : day, 
 
    hour = date.getHours().toString(), 
 
    formatedHour = (hour.length === 1) ? ("0" + hour) : hour, 
 
    minute = date.getMinutes().toString(), 
 
    formatedMinute = (minute.length === 1) ? ("0" + minute) : minute, 
 
    second = date.getSeconds().toString(), 
 
    formatedSecond = (second.length === 1) ? ("0" + second) : second; 
 
    return formatedDay + "-" + formatedMonth + "-" + year + " " + formatedHour + ':' + formatedMinute + ':' + formatedSecond; 
 
}; 
 

 
document.getElementById("date").innerHTML = getDate(); 
 
setInterval(function() { 
 
    document.getElementById("date").innerHTML = getDate(); 
 
}, 3000);
<span id="date"></span>

你可能只需要getDate()方法。

+0

做得非常好。 – Jigar7521

2

这里,我们去:

var today = new Date(); 
 
var day = today.getDate() + ""; 
 
var month = (today.getMonth() + 1) + ""; 
 
var year = today.getFullYear() + ""; 
 
var hour = today.getHours() + ""; 
 
var minutes = today.getMinutes() + ""; 
 
var seconds = today.getSeconds() + ""; 
 

 
day = checkZero(day); 
 
month = checkZero(month); 
 
year = checkZero(year); 
 
hour = checkZero(hour); 
 
mintues = checkZero(minutes); 
 
seconds = checkZero(seconds); 
 

 
console.log(day + "/" + month + "/" + year + " " + hour + ":" + minutes + ":" + seconds); 
 

 

 
function checkZero(data){ 
 
    if(data.length == 1){ 
 
    data = "0" + data; 
 
    } 
 
    return data; 
 
}