从Javascript到C#获取正确的日期(以毫秒为单位)
Get Correct Date In Milliseconds From Javascript To C#
我使用moment将日期字符串转换为日期对象,然后获取该日期的毫秒数,并将其作为查询字符串传递给服务器问题是,当我试图将javascript转换为C#中的DateTime时,我从javascript中得到的毫秒数总是给我不同的日期
javascript
function RedirectToOptions() {
var iBranchId = $('#ddl_Branches').val();
var strDate = $('#txt_datepicker').val();
var dtDate = moment(strDate);
var iDate = dtDate.toDate().getTime();
var capitalActionUrl = '@Html.Raw(@Url.Action("Revenue", new {BranchId = "_id_", DateTimeStamp = "_date_" }))';
var branchCapitalUrl = capitalActionUrl.replace("_id_", iBranchId);
var branchCapitalUrl = branchCapitalUrl.replace("_date_", iDate);
window.location.replace(branchCapitalUrl);
}
C#
public ActionResult Revenue(int? BranchId, double? DateTimeStamp)
{
DateTime? date = (DateTimeStamp.HasValue) ? (DateTime?)DateTimeConverter.FromUnixToDateTime(DateTimeStamp.Value) : null;
IEnumerable<RevenueDTO> revenueDTO = _Client.GetRevenue(BranchId, date);
IEnumerable<RevenueViewModel> revenue = ViewModelConverter.RevenueDTOToRevenueViewModel(revenueDTO);
List<BranchDTO> branchesDTO = _Client.GetAllBranches().ToList();
var branches = ViewModelConverter.BranchDTOToBranchesViewModelList(branchesDTO);
ViewBag.Branches = branches;
return View(revenue);
}
转换为日期时间
public static DateTime FromUnixToDateTime(double UnixTimeStamp)
{
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
dateTime = dateTime.AddMilliseconds(UnixTimeStamp);
return dateTime;
}
当我试图在转换时通过2016年5月1日(dd/MM/yyyy格式)时,由于某种原因,它变成了2016年4月1日
有一种更好的方法可以将日期对象传递给C#,那就是使用普通的ISO 8601标准格式(例如2016-01-01T12:00:00.568Z)。如果您在日期上调用toJSON(),C#中的绑定器应该自动将其转换为具有适当时区的C#日期时间。
与处理原始毫秒数相比,您将能够在javascript中查看时间序列号是否与毫秒不匹配。
你可以在这里阅读更多。
如果您正在使用epoch,请确保所有时区都设置为UTC(然后转换为本地时区)。。。在Javascript中:
// ...
var dtDate = moment.utc(strDate);
// ...
在C#中:
// ...
DateTime dateTime = new System.DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
// ...
相关文章:
- 从Javascript到C#获取正确的日期(以毫秒为单位)
- 以周为单位计算日期差异(Javascript)
- 如何获得日期以 YYYY-mm-dd 为单位的年份差异
- 减去日期,返回以月为单位的结果
- Javascript 实现差异(以 2 个日期之间的天数为单位)
- 以天为单位的 2 个 ember 日期时间对象之间的差异
- 以毫秒 (UTC) 为单位获取当前日期(不使用字符串)
- 以 JSON 日期为单位的一小时偏移量
- 如何将日期减去或添加某个数字并以纪元毫秒为单位获得值
- 将以毫秒为单位的日期转换为日/月/年
- 如何在Microsoft CRM 2011中根据出生日期计算年龄(以年和月为单位)
- 使用自epoch以来以毫秒为单位的时间比较javascript中的日期和时间
- 你如何获得当前日期's的开始时间和最新时间(以毫秒为单位)
- 获取以分钟为单位的当前日期时间,并将日期时间(d.m.Y H:m)转换为分钟Javascript
- 计数器:从指定日期到现在的时间,以秒为单位
- javascript中的日期差异(以天为单位)
- 解析日期对象字符串并获取以毫秒为单位的时间
- 使用ScriptUpdateProcessor将以毫秒为单位的时间转换为Solr日期格式
- 查找以年为单位的两个日期之间的差异
- Javascript:以月和日期为单位的日期在每次用户更改年份时重置