Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期和C#DATE-最好的解决方案是什么?_C#_Javascript_Json_Datetime - Fatal编程技术网

Javascript日期和C#DATE-最好的解决方案是什么?

Javascript日期和C#DATE-最好的解决方案是什么?,c#,javascript,json,datetime,C#,Javascript,Json,Datetime,我使用以下代码从服务器端C#获取日期: DateTime d1 = new DateTime(1970, 1, 1); DateTime d2 = (DateTime)c.ccdTimestamp2; long x = new TimeSpan(d2.Ticks - d1.Ticks).TotalMilliseconds; 当我在javascript端获取代码时: function (timestamp) { alert("testing :" + new Date(timestamp

我使用以下代码从服务器端C#获取日期:

DateTime d1 = new DateTime(1970, 1, 1);
DateTime d2 = (DateTime)c.ccdTimestamp2;
long x = new TimeSpan(d2.Ticks - d1.Ticks).TotalMilliseconds;
当我在javascript端获取代码时:

function (timestamp) {
    alert("testing :" + new Date(timestamp))
}
这给了我一个完全格式化的日期,但它不带我时区的时间,因为如果这里是17.15,它会为我提供19.15 GMT+2

起初,我只是试图传递我的c#时间戳,没有上面的任何代码,但我发现了这个问题:但我不知道什么是JSON,我无法推导出我能做什么!使用JSON更容易吗?如果是的话,有谁能指导我吗?多谢各位


编辑:解决方案 -我没有在服务器端使用世界时。我保留了服务器端代码的原样。我所做的就是:

new Date(timestamp).toUTCString()
你可以用

你应该做的是:

  • 始终在服务器上使用UTC时间
  • 像现在一样,将UTC时间作为单位时间戳发送到浏览器
  • 在浏览器中将时间戳转换为本地时间
使用的时间戳表示:
2012-04-11T15:46:29+00:00

var d = new Date ( 1334159189000 );
// gives you back 2012-04-11T15:46:29+00:00 in a slightly different format, but the timezone info matches UTC/GMT+0
d.toUTCString();
// gives you back your local time
d.toLocaleString();
刚刚创建了一个JSFIDLE来显示它做了它应该做的事情:

使用

var currentDate = new Date();
//get off set from your browser
var offset = Date.getTimezoneOffset();

服务器和客户端是否位于不同的时区?我甚至无法引用System.Web.Script…:/@测试后,我看不到有什么方法可以帮助那些甚至无法参考System.Web.Script的
:很抱歉,我无法在“System”选项卡下的参考中找到它。或者我应该在其他地方搜索吗?@test点击我答案中的链接。当我尝试使用C#ticks时,它将向您显示所需的名称空间和程序集—它不起作用。时间是:635834482125955879
var currentDate = new Date();
//get off set from your browser
var offset = Date.getTimezoneOffset();