gpt4 book ai didi

javascript - 如何以正确的格式从js获取日期?月和日颠倒

转载 作者:太空宇宙 更新时间:2023-11-03 22:40:13 24 4
gpt4 key购买 nike

我正在调用一个 ajax 来获取一些用于编辑数据的值。作为我的对象的一部分,我正在发送日期字段。我的问题是,当我在 Controller 中收到日期值时,日期格式错误 - 我的日期和月份颠倒了。因此,我无法在需要的地方比较它们。但是我的月份和日期是相反的。例如,它返回 3 月 10 日,而不是 10 月 3 日。如何解决这个问题?我在这样的对象中从 js 发送日期字段:

ExamsDataU = {
classId: classIdValue,
date: dateValue
};

在我的 Controller 中我尝试了:

DateTime dateToCheck = Convert.ToDateTime(dto.Date);

最佳答案

您应该知道的第一件事是使用 Convert.ToDateTime() 进行日期解析取决于服务器中使用的当前文化(您可以使用 CultureInfo.CurrentCulture 属性进行检查).您可以尝试其中一种方法在 Controller 操作方法中正确解析 JS 日期格式:

1) 使用自定义格式的 DateTime.ParseExact()/DateTime.TryParseExact()

这种方式需要在解析日期之前指定日期格式:

// specify custom format
string dateFormat = "dd-MM-yyyy";
DateTime dateToCheck = DateTime.ParseExact(dto.Date, dateFormat, CultureInfo.InvariantCulture);

2) 以 ISO 8601 格式使用 DateTime.ParseExact()/DateTime.TryParseExact()

使用date: dateValue.toISOString();将JS日期转成ISO 8601格式再转换:

// specify ISO format
string dateFormat = "yyyy-MM-ddTHH:mm:ss.fffZ";
DateTime dateToCheck = DateTime.ParseExact(dto.Date, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);

这种方式比前者更好,因为不需要在客户端编写额外的日期表示代码,并且如果需要,您还可以将日期表示调整为本地时间。

注意事项:

a) 对于指定的文化,您可以尝试CultureInfo.GetCultureInfo():

var culture = CultureInfo.GetCultureInfo(CultureInfo.CurrentCulture.Name);
DateTime dateToCheck = DateTime.ParseExact(dto.Date, dateFormat, culture);

b) 在使用DateTime.TryParseExact() 时,可以使用if 条件来检查日期字符串是否有效:

DateTime dateToCheck;
if (DateTime.TryParseExact(dto.Date, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateToCheck))
{
// do something
}

关于javascript - 如何以正确的格式从js获取日期?月和日颠倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com