我在 Javascript 中有一个函数,它从 MVC 接收 C# DateTime。 如果日期为空,它应该返回“-”,如果它是一个有效的日期,它应该返回格式化的日期。
重要提示:无法从 C# 发送其他格式的日期。
Javascript:
function CheckDate(date) {
if (date == "Mon Jan 01 0001 00:00:00 GMT+0000 (GMT Daylight Time)")
return "-";
else {
var dat = new Date(date);
return dat.getFullYear() + dat.getMonth() + dat.getDay();
}
是否有更好的方法来比较日期是否为 C# New DateTime?
如何解析并返回“yyyy/MM/dd”格式的日期?
最佳答案
考虑到您遇到的输出,我想不出任何更好的方法来在 javascript 端捕获 0 的 DateTime
。
Date.parse
应该可以满足您的解析需求,但它会返回毫秒数,因此您需要在其周围包装一个 Date 构造函数:
var date = new Date(Date.parse(myCSharpString));
对于返回日期,您只需
date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getDate() + 1);
(date.getMonth
和 date.getDate
是 0 索引而不是 1 索引。)
fiddle :http://jsfiddle.net/GyC3t/ 罢工>
编辑
感谢 JoeB 的捕获,让我做一个更正。 date.getMonth()
函数的索引为 0,而 date.getDate()
函数的索引为 1。 fiddle 与 +1 一起“工作”,因为 date.getMonth 在本地时间工作,这是在 UTC 之前。我没有正确检查文档,只是添加了 1,它与 fiddle 一起工作。
更合适的做法是:
对于返回日期,你只需要
date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getUTCDate());
(date.getMonth
是 0 索引的,而 date.getDate
是 1 索引的,但容易受到时区差异的影响。)
fiddle :http://jsfiddle.net/GyC3t/25/
关于c# - 将 C# 日期时间转换为 Javascript 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950075/