cha*_*ez1 9 javascript html5 date input object
我正在尝试在focus.add_days函数中创建一个javascript日期对象,以便在元素中的给定日期添加一些日期.问题是javascript对象不期望字符串"Ymd"所以如何创建日期对象而不将字符串"Ymd"解析成片段,或者是唯一的方法?
trigger = {
fecha_ini: function(){
$('input[name="fecha_ini"]').on('change',function(){
console.log('hi');
var fecha_fin = $(':input [name=fecha_fin]');
var min = $(this).val();
//here is where i pass the "Y-m-d" string as the date argument
var max = fechas.add_days(min,31*4);
fecha_fin.attr('min',min);
fecha_fin.attr('max',max);
fecha_fin.val('');
})
}
};
fechas = {
add_days: function addDays(date, days) {
//here is where i use the string "Y-m-d" to create the date object, but obviusly doesnt work
var result = new Date(date);
result.setDate(date.getDate() + days);
return result;
}
};
trigger.fecha_ini();
Run Code Online (Sandbox Code Playgroud)
acd*_*ior 10
用途valueAsDate:
valueAsDate
返回:Date
返回/设置元素的值,解释为日期,或者null是否无法进行转换.
演示:
<input type="date" id="d" value="2018-02-14">
<button onclick="console.log( document.getElementById('d').valueAsDate )">
change the date (or not) and click me
</button>Run Code Online (Sandbox Code Playgroud)
如何在不将字符串"Ymd"解析为片段的情况下创建日期对象,还是唯一的方法?
虽然Date.parse会将y/m/d/format中的字符串转换为日期对象,但手动解析是唯一合理的方法:
// s is format y-m-d
// Returns a date object for 00:00:00 local time
// on the specified date
function parseDate(s) {
var b = s.split(/\D/);
return new Date(b[0], --b[1], b[2]);
}
Run Code Online (Sandbox Code Playgroud)
ES5指定了所有浏览器都应支持的ISO 8601格式,但不一致或所有正在使用的浏览器都不支持.
javascript对象总是解析 UTC 时区Date的原始值!<input type=date>
new Date(input.value) // Date object, date interpreted as UTC but printed in the local TZ
Date.parse(input.value) // Unix time in ms, date interpreted as UTC
Run Code Online (Sandbox Code Playgroud)
如果 的值<input type=date>要在本地时区中解释,那么您可以通过添加如下所示的时间来强制它:
new Date(input.value+"T00:00") // Date object, date interpreted and printed in the local TZ
Date.parse(input.value+"T00:00") // Unix time in ms, date interpreted as local TZ
Run Code Online (Sandbox Code Playgroud)
强调我的
例如,可以传递“
2011-10-10”(仅日期形式)、“2011-10-10T14:48:00”(日期时间形式)或“ ”(带有毫秒和时区的日期时间形式)并将被解析。当时区偏移量不存在时,仅日期形式将解释为 UTC 时间,而日期时间形式将解释为本地时间。2011-10-10T14:48:00.000+09:00
| 归档时间: |
|
| 查看次数: |
7774 次 |
| 最近记录: |