我使用jQuery UI中的UI DatePicker作为独立选择器.我有这个代码:
<div id="datepicker"></div>
Run Code Online (Sandbox Code Playgroud)
以下JS:
$('#datepicker').datepicker();
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此代码返回值时:
var date = $('#datepicker').datepicker('getDate');
Run Code Online (Sandbox Code Playgroud)
我退回了这个:
Tue Aug 25 2009 00:00:00 GMT+0100 (BST)
Run Code Online (Sandbox Code Playgroud)
这是完全错误的格式.有没有办法让我以格式返回DD-MM-YYYY
?
我使用的是jQuery Date选择器,但它太重了,ui.datepicker.min.js的缩小版本是44 KB.datepicker的图像有自己的重量.jQuery框架是59 KB.页面上的总图像大约为80 KB.页面的总HTML大约为70 KB,CSS文件大小约为72 KB.还有更多,所有东西总计600 KB(0.6 MB).
您认为用户是否会等待600 KB在浏览器中下载?可能需要8到10秒.而且我认为用户不会等待这么长时间.
我想保持我的网站轻量级.有没有轻量级的JavaScript日期选择器?
我正在使用HTML5 <input type="date" />
,它在Chrome中运行良好,我可以通过日历弹出窗口选择日期.
但在Firefox中,它就像一个文本框,没有日历弹出.
经过一些研究后,我看到很少使用webshims,modenizr等解决方案...但我不想使用jQuery.
有替代方案吗?如何让它在Firefox中运行?
我目前正在尝试从HTML输入中获取值(下面)
<input type="date" id="dateInput" />
Run Code Online (Sandbox Code Playgroud)
并把它放入一个javascript变量,所以我可以用它来做其他事情.我目前正在使用下面的代码.
var input = document.getElementById("dateInput").value;
var dateEntered = new Date(input);
Run Code Online (Sandbox Code Playgroud)
但是当我测试这些变量时,它告诉我输入是""而dateEntered是"无效日期".
我已经尝试了.valueAsDate而不仅仅是.value.当我测试它们时,它告诉我输入为空并且dateEntered是"Wed Dec 31 1969 19:00:00 GMT-0500(东部标准时间)",即使我输入今天的日期.
我如何解决这个问题,以便javascript变量实际反映我输入的日期?我使用谷歌浏览器作为我的浏览器.
编辑和更新 对于那些想要我的整个代码的人来说,缩进有点遗憾:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Calculate Time</title>
<link rel="stylesheet" href="styles.css" />
<script src="modernizr.custom.05819.js"></script>
</head>
<body>
<header>
<h1> Calculate Time </h1>
</header>
<article align="center">
<div id="cities">
// My navigation links here (REMOVED)
</div>
<div id="caption">
Calculate the time elapsed since a date entered. …
Run Code Online (Sandbox Code Playgroud) 我在我的HTML中使用输入类型DATE,在Chrome和Firefox中一切正常,但IE没有显示日期选择器.
当我使用JQuery Datepicker时,我在Chrome和Firefox中获得了两个日期选择器对话框.
如何修复我可以拥有日期输入类型的功能,并且只有一个弹出表单?
我的观点是从数据库中显示日期
<div class="input-group">
@Html.TextBoxFor(model => model.domain_renew_date, "{0:dd/MMM/yyyy}", new { @type = "datetime", @class = "form-control" })
@Html.ValidationMessageFor(model => model.domain_renew_date, "", new { @class = "text-danger" })
</div>
Run Code Online (Sandbox Code Playgroud)
我的javascript for datepicker
<script type="text/javascript">
$(document).ready(function () {
$('input[type="datetime"]').datepicker({
dateFormat: "dd/MM/yy",
changeMonth: true,
changeYear: true,
yearRange: "c-10:c+10"
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
声明属性的模型
[Display(Name = "Date of Renewal")]
[DataType(DataType.Date)]
[RequiredIf("domain_flag", "1", ErrorMessage = "Enter Renew Date")]
public DateTime? domain_renew_date { get; set; }
Run Code Online (Sandbox Code Playgroud)
在web.config中
<system.web>
<globalization uiCulture="en" culture="en-GB" />
</system.web>
Run Code Online (Sandbox Code Playgroud)
这在chrome和Firefox中运行得非常好.但在IE和Safari中给出以下错误
字段续订日期必须是日期
可以在代码中进行哪些更改,以使其在所有浏览器中都能正常运行?
date ×3
javascript ×3
datepicker ×2
html ×2
jquery ×2
asp.net-mvc ×1
firefox ×1
html5 ×1
input ×1
jquery-ui ×1