如何将日期时间形式的Net转换为JavaScript [英] How can convert datetime form Net to JavaScript

查看:41
本文介绍了如何将日期时间形式的Net转换为JavaScript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请不要重复与ASP.NET解析DateTime是从对JavaScript日期的Ajax调用,我已经仔细阅读了.但是我的问题是差异.

Please don't make duplicate vs ASP.NET Parse DateTime result from ajax call to javascript date and Parsing DateTime format passed from Ajax to "dd/MM/yyyy", I have been read carefully. But my question is differences.

我下面的ajax从asp.net加载了数据.

I have data from asp.net load by ajax below.

 Datetime in c#: "2019-05-04" 

 The result in ajax is: "/Date(1556895600000+0900)/"

您可以看到自动将时间UTC偏移到DateTime的结果,我不知道为什么.

You can see the result automatic add time UTC offset to DateTime, I don't know why.

如何在javascript与上面的数据中转换为DateTime?

How can I convert to DateTime in javascript vs data above?

var d = new Date(("/Date(1556895600000+0900)/").match(/\d+/)[0] * 1)
console.log(d)

您可以看到:结果为"2019-05-03T15:00:00.000Z",但我希望结果为"2019-05-04".我该怎么办?

You can see: Result "2019-05-03T15:00:00.000Z", But I expect result "2019-05-04". How can I do this?

推荐答案

我不是约会专家,但以下内容对我很有说服力

Look I'm no dates expert but the following looks convincing to me

const parse = str => {
    let [_, timestamp, offsetHours, offsetMinutes] = str.match(/(\d+)([+-]\d\d)(\d\d)/).map(Number);
    
    let date = new Date(timestamp);
    date.setHours(date.getHours() + offsetHours);
    date.setMinutes(date.getMinutes() + offsetMinutes);
    return date;
}

console.log(
    parse("/Date(1556895600000+0900)/")
    .toJSON()
)
console.log(
    parse("/Date(1556895600000-0700)/")
    .toJSON()
)

这是ES3版本,以防它在较旧的浏览器中不起作用(如OP在评论中所述)

Here's a ES3 version in case it doesn't work in older browsers (as the OP said in the comments)

function parse(str) {
    var matches = str.match(/(\d+)([+-]\d\d)(\d\d)/).map(Number);
    var timestamp = matches[1];
    var offsetHours = matches[2];
    var offsetMinutes = matches[3];
  
    var date = new Date(timestamp);
    date.setHours(date.getHours() + offsetHours);
    date.setMinutes(date.getMinutes() + offsetMinutes);
    return date;
}


console.log(
    parse("/Date(1556895600000+0900)/")
    .toJSON()
)
console.log(
    parse("/Date(1556895600000-0700)/")
    .toJSON()
)

这篇关于如何将日期时间形式的Net转换为JavaScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆