在输入类型日期中设置日期
Set date in input type date
我将在Chrome的日期选择器输入类型日期中设置今天的日期。
$(document).ready(function() {
let now = new Date();
let today = now.getDate() + '/' + (now.getMonth() + 1) + '/' + now.getFullYear();
console.log(today);
$('#datePicker').val(today);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="datePicker" type="date">
但是,它不起作用。
请尝试在 Chrome 中使用代码片段。
小提琴链接:http://jsfiddle.net/7LXPq/93/
这其中有两个问题:
- HTML 5 中的日期控件接受我们在 SQL 中使用的年 - 月 - 日的格式
- 如果月份是 9,则需要将其简单地设置为 09 而不是 9。所以它也适用于日字段。
请点击小提琴链接进行演示:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#datePicker').val(today);
document.getElementById("datePicker").valueAsDate = new Date()
应该工作。
var today = new Date().toISOString().split('T')[0];
$("#datePicker").val(today);
上面的代码将起作用。
更新:我正在用date.toISOString().substr(0, 10)
这样做。给出与接受答案相同的结果,并有很好的支持。
对我来说,解决这个问题的最短方法是使用moment.js只需2行即可解决此问题。
var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);
如果您的代码采用以下格式,它将起作用:YYYY-MM-DD
,这是日期格式的计算机标准 http://en.wikipedia.org/wiki/ISO_8601
我通常在使用日期输入时创建这两个辅助函数:
// date is expected to be a date object (e.g., new Date())
const dateToInput = date =>
`${date.getFullYear()
}-${('0' + (date.getMonth() + 1)).slice(-2)
}-${('0' + date.getDate()).slice(-2)
}`;
// str is expected in yyyy-mm-dd format (e.g., "2017-03-14")
const inputToDate = str => new Date(str.split('-'));
然后,您可以将日期输入值设置为:
$('#datePicker').val(dateToInput(new Date()));
并像这样检索所选值
const dateVal = inputToDate($('#datePicker').val())
您只能在输入type="date"
中使用日期,就像格式一样YYYY-MM-DD
我已经在 NODE 中实现了助手作为formatDate
.js快速车把,无需担心......只需使用第一行中所述的格式即可。
例如:
< input type="date" id="date" name="date" class="form-control" value="{{formatDate invoice.date 'YYYY-MM-DD'}}" />
> 2021
我发现这样做的一个好方法是使用语言环境进行格式化。 您可以通过许多不同的方式使用它。这适用于不使用 jquery 日期选择器,而是使用 html 日期选择器的情况。
$("#datepickerEnd").val(new Date().toLocaleDateString('en-CA'));//YYYY-MM-dd
或拆分用于操作或调整或其他用途。
let theDate = new Date();
$("#datepickerEnd").val(theDate.toLocaleDateString('en-CA'));//YYYY-MM-dd
操作示例。
theDate.setDate(theDate.getDate()-7);
$("#datepickerStart").val(theDate.toLocaleDateString('en-CA'));//YYYY-MM-dd
"en-ca"是我的日期选择器所需的格式。 如果您的格式不同,您可以查找匹配的字符串格式。 由于它将其转换为字符串,因此它不包含用于弄乱每个区域的额外信息。因此,通过这种方式,您可以将其用于纯粹的格式化。
欲了解更多信息
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
日期时间选择器始终需要输入格式 YYYY-MM-DD,它不关心模型的显示格式或本地系统日期时间。但是日期时间选择器的输出格式是您想要的(您的本地系统(。我的帖子中有一个简单的例子。
对我来说,获取区域设置日期和输入type="date"
正确格式的最短方法是:
var d = new Date();
var today = d.getFullYear()+"-"+("0"+(d.getMonth()+1)).slice(-2)+"-"+("0"+d.getDate()).slice(-2);
或者这个:
var d = new Date().toLocaleDateString().split('/');
var today = d[2]+"-"+("0"+d[0]).slice(-2)+"-"+("0"+d[1]).slice(-2);
然后只需设置日期输入值:
$('#datePicker').val(today);
试试这个,
$('#datePicker').val(moment().format('YYYY-MM-DD'));
注意:您需要添加 Moment.js 作为依赖项
一个表达式中的解决方案:
$('#datePicker').val(
new Date()
.toLocaleDateString("en-US",
{year:"numeric",month:"2-digit",day:"2-digit"})
.replace(/('d+).('d+).('d+)/,"$3-$2-$1")
)
Jquery version
var currentdate = new Date();
$('#DatePickerInputID').val($.datepicker.formatDate('dd-M-y', currentdate));
- 我想以时间戳的形式将日期设置为无限
- Bootstrap DatePicker-将日期设置为明天
- 为什么将新日期设置为今天会返回昨天
- 将 JavaScript 日期设置为静态
- 将日期设置为“”格式;Md、yy”;
- 将“日期”设置为Jquery UI日期选择器输入文本框
- 如何使用日期选择器将默认日期设置为从当前日期起两天
- 如何使用javascript将验证日期设置为不小于文本框中的开始日期
- 正在将日期范围选取器的开始日期设置为空
- Javascript:将新日期设置为明天上午8点
- 引导日期选择器将日期设置为1970年之前
- 如何将小时 javascript 日期设置为大于 23 并使用 .getHours() 函数检索它们
- 如何将日期设置为 72 小时后过期
- 在引导日期选取器中将日期设置为初始为空
- 如何在引导日期设置每月的第一个日期和最后一个日期
- 如何使用另一个日期输入字段将日期设置为输入字段
- 无法将昨天的日期设置为剑道UI日期选择器
- 根据特定日期设置数组
- 将“当前日期”设置为在引导日期选取器中选中
- 在 session.createDateTime 中将日期设置为特定的 d/t 和时区