【发布时间】:2018-08-09 18:50:34
【问题描述】:
我在C#中有这样的代码:
public static decimal StringDateToDecimal(this string stringDate)
{
var cultureInfo = new CultureInfo("ru-Ru");
var date = DateTime.Parse(stringDate, cultureInfo);
var number = date.ToBinary();
var unix = new DateTime(1970, 1, 1);
var diff = (date - unix).Ticks;
return (decimal)diff;
}
对于 2018 年 3 月 1 日,它返回 15198624000000000。
但是js中的代码:
var from = $input.split(".");
var d = new Date(from[2], from[1] - 1, from[0]);
var dStart = new Date(1970, 1, 1);
var seconds = d.getTime();
var secondsStart = dStart.getTime();
var dateDifference = seconds - secondsStart;
对于“01.03.2018”,它返回 1517184000000
或
var ticks2 = ((d.getTime() * 10000) + 621355968000000000);
var ticks1 = ((dStart.getTime() * 10000) + 621355968000000000);
var difrent = ticks2 - ticks1;
我在 js 代码中做错了什么?
我想在js中得到相同的值
【问题讨论】:
-
滴答声与秒数不同。
-
我可以将转换添加到刻度,但没有任何变化
-
您是否正在尝试从一个转换为另一个,c# 和 js?或者只是尝试在两者中实现相同的功能?
-
我想在js中获取相同的值
-
请注意,JavaScript 日期和 .NET 日期时间都只能精确到大约 10-15 毫秒。所以获取 Ticks 的值(低至 100ns)有点傻。
标签: javascript c# date