gpt4 book ai didi

jquery - 如何根据服务器日期格式设置 jQuery UI datepicker 的 dateFormat?

转载 作者:行者123 更新时间:2023-12-01 01:34:11 25 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC 并使用两台服务器。在第一个服务器上(用于测试),日期格式设置为 dd.mm.yy,但在第二个服务器上 - mm/dd/yy。问题是:是否可以根据站点运行的服务器日期格式为 jQuery UI 日期选择器自定义 dateFormat?

渲染日期:

<%=Html.EditorFor(p=>Model.myDate)%>

Javascript 代码示例:

$('#myDate').datepicker({
dateFormat: 'dd.mm.yy',
onSelect: function (dateText) { doSomething(); },
onClose: function () { doAction(); }
})

是否可以将强类型 dateFormat: 'dd.mm.yy' 替换为根据服务器日期格式格式化日期的内容?如果"is"-该怎么做?

目前,我正在使用一些临时解决方案:

$('#myDate').datepicker({
dateFormat: $("#myDate").val().indexOf('/') > 0 ? 'mm/dd/yy' : 'dd.mm.yy',
onSelect: function (dateText) { doSomething(); },
onClose: function () { doAction(); }
})

最佳答案

您可以在控件上强制执行格式,即

@Html.TextBoxFor(m => m.OrderDate, String.Format("{0:dd/M/yy}", Model.YourDate),
new { @class = "datepicker datepicker-init" })

jQuery UI 采用略有不同的日期格式,即 dd/mm/y 而不是您问题中的 mm/dd/yy

所以这会起作用:

<script type="text/javascript">
$(".datepicker").datepicker({
minDate: 0,
dateFormat: 'dd/mm/y'
});

</script>

看这里:

http://jsfiddle.net/hutchonoid/Fa8Xx/1376/

如果这不好,您可以确定格式,并将其设置在您的 ViewModel 上,即

<script type="text/javascript">
$(".datepicker").datepicker({
minDate: 0,
dateFormat: '@Model.MyDateFormat'
});

</script>

更新

好的,要确定日期是否有正斜杠,您可以按如下方式执行:

创建一个字符串扩展,以任何方式替换它们;

public static string ContainsForwardSlashReplace(this string aString)
{
return aString.Contains("/") ? aString.Replace("/",".") : aString.Replace(".","/");
}

然后在 Controller 中的格式化日期上调用此函数,以获取返回的日期和 jQueryUI 格式。

这是一个简单的控制台示例,显示之前和之后的情况:

var aDate = DateTime.Now.ToString("d");
// Change below to the oposite that is returned from above to test to other way
//var aDate = "23/01/2014";
var jqueryUiFormat = "dd/mm/y";
string newDate = aDate.ContainsForwardSlashReplace();
string newjQueryUiFormat = jqueryUiFormat.ContainsForwardSlashReplace();
Console.WriteLine("Original Date: {0}", aDate);
Console.WriteLine("Replaced Date: {0}", newDate);
Console.WriteLine("Original jQueryFormat : {0}", jqueryUiFormat);
Console.WriteLine("Replaced jQueryFormat: {0}", newjQueryUiFormat);

最后一步是将格式化日期和 jQuery ui 日期格式添加到您的模型中,并按照我上面的描述输出它。

更新 (按问题作者)

似乎没有我正在寻找的解决方案。所以这个将被标记为解决方案。欲了解更多 - 请参阅评论。

关于jquery - 如何根据服务器日期格式设置 jQuery UI datepicker 的 dateFormat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21305323/

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