如何将输入类型为日期的默认值设置为今天?

19 浏览
0 Comments

如何将输入类型为日期的默认值设置为今天?

给定一个输入元素:


是否有办法将日期字段的默认值设置为今天的日期?

0
0 Comments

如何将输入类型为日期的默认值设置为今天?

问题的原因:

- 需要将日期格式转换为所需的格式。

- 需要考虑时区支持。

- 在支持移动设备的情况下,可能会遇到日期选择控件在某些设备上的问题。

解决方法:

- 使用JavaScript的Date对象提供的内置支持来避免手动转换日期格式。

- 添加代码以支持正确的时区。

- 使用jQuery或纯JavaScript来设置默认值。

以下是使用纯JavaScript的解决方法:

Date.prototype.toDateInputValue = (function() {
    var local = new Date(this);
    local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
    return local.toJSON().slice(0,10);
});
document.getElementById('datePicker').value = new Date().toDateInputValue();

以下是使用jQuery的解决方法:

$(document).ready( function() {
    $('#datePicker').val(new Date().toDateInputValue());
});

需要注意在支持移动设备时可能会遇到的问题。在某些设备上,通过弹出日期控件选择的新日期可能会追加到当前日期上,而不是替换它。这可能导致日期显示不正确。可能的解决方法是将当前日期赋值给defaultValue属性。

然而,使用`.toJSON()`方法来转换日期格式时,不会考虑时区偏移量。为了解决这个问题,可以使用`local.setMinutes(this.getMinutes() - this.getTimezoneOffset())`来调整时区偏移量。

需要注意的是,这种方法只会设置value属性,而不会设置defaultValue属性。如果重置表单,它将默认为没有值。为了解决这个问题,可以设置defaultValue属性。

问题的原因是需要将输入类型为日期的默认值设置为当前日期。可以使用JavaScript的Date对象提供的内置支持来避免手动转换日期格式。解决方法包括添加代码以支持正确的时区,使用jQuery或纯JavaScript来设置默认值。需要注意在支持移动设备时可能会遇到的问题,并提供相应的解决方法。

0
0 Comments

问题的原因是如何将输入框的类型设置为日期的默认值为今天。解决方法是使用HTMLInputElement.prototype.valueAsDate属性,将其设置为当前日期。以下是解决方法的具体代码:

document.getElementById('datePicker').valueAsDate = new Date();

这种方法在支持HTML5输入类型的浏览器和移动版本中都可以正常工作。因为valueAsDate是HTML5规范的一部分,支持HTML5输入类型的浏览器都应该支持valueAsDate属性。关于该属性的浏览器支持情况可以参考html.spec.whatwg.org/multipage/forms.html#dom-input-valueasdate

需要注意的是,使用valueAsDate属性设置日期时,会将日期转换为UTC时间。例如,如果当前时区是-0600,并且时间是2018-03-27的下午6点,那么设置valueAsDate为new Date()时,输入框的值将被设置为2018-03-28。更多关于时区转换的信息可以参考austinfrance.wordpress.com/2012/07/09/…

需要注意的是,如果不需要使用UTC时间,这种方法将会设置错误的日期。

0
0 Comments

问题的原因是HTML5中的date输入类型没有提供一种指定默认值为"today"的方式。解决方法是使用RFC3339格式的日期(YYYY-MM-DD)来设置默认值。

对于不同的编程语言和框架,可以使用以下方法来设置默认值:

- JavaScript: 使用element.value = "2011-09-29"来设置默认值。

- .NET: 使用DateTime.Today.ToString("yyyy-MM-dd")来设置默认值。

- Perl: 使用DateTime->now()->ymd('-')来设置默认值。

- Ruby: 使用Time.current.strftime('%Y-%m-%d')DateTime.now.strftime("%Y-%m-%d")来设置默认值。

- PHP: 使用echo date("Y-m-d")来设置默认值。

- Django模板语言: 使用{% now "Y-m-d" %}来设置默认值。

- Go语言: 使用time.Now().Format("2006-01-02")来设置默认值。

这些方法可以根据不同的需求和编程语言选择使用,以确保将日期设置为当前日期。

0