Html 使用角省道将日期绑定到InSubtbox
我正在构建一个webapp,其中包含带有日期的输入框。如何将数据绑定到我的背景代码? 我试着直接这样做,但我猜inputbox只能处理字符串,所以a使用了转换为字符串的方法等等Html 使用角省道将日期绑定到InSubtbox,html,angular-dart,inputbox,Html,Angular Dart,Inputbox,我正在构建一个webapp,其中包含带有日期的输入框。如何将数据绑定到我的背景代码? 我试着直接这样做,但我猜inputbox只能处理字符串,所以a使用了转换为字符串的方法等等 <div> <label>start date: </label> <input [(ngModel)]="item.stringStartDate" placeholder="start date" type="date"> </div>
<div>
<label>start date: </label>
<input [(ngModel)]="item.stringStartDate" placeholder="start date" type="date">
</div>
void set startDate(DateTime startDate)
{
_startDate = startDate;
}
void set stringStartDate(String startDate)
{
this.startDate = parseDate(startDate);
}
static DateTime parseDate(String formattedString)
{
final RegExp r = new RegExp(
r'^(\d\d)-?(\d\d)-?([+-]?\d{4,6})');
Match match = r.firstMatch(formattedString);
if (match != null)
{
int years = int.parse(match[3]);
int month = int.parse(match[2]);
int day = int.parse(match[1]);
return new DateTime(years, month, day);
}
else
{
throw new FormatException("Invalid date format", formattedString);
}
}
static String dateToString(DateTime date){
if (date == null)
return null;
String ret = "${date.year}/";
if (date.month < 10)
ret+="0";
ret+="${date.month}/";
if (date.day < 10)
ret += "0";
ret+="${date.day}";
return ret;
}
开始日期:
无效集开始日期(日期时间开始日期)
{
_开始日期=开始日期;
}
无效集stringStartDate(字符串startDate)
{
this.startDate=parseDate(startDate);
}
静态日期时间解析日期(字符串格式化字符串)
{
最终RegExp r=新RegExp(
r'^(\d\d)-?(\d\d)-?([+-]?\d{4,6}');
Match Match=r.firstMatch(格式化字符串);
如果(匹配!=null)
{
int years=int.parse(匹配[3]);
int month=int.parse(匹配[2]);
int day=int.parse(匹配[1]);
返回新的日期时间(年、月、日);
}
其他的
{
抛出新的FormatException(“无效的日期格式”,formattedString);
}
}
静态字符串dateToString(日期时间日期){
如果(日期==null)
返回null;
字符串ret=“${date.year}/”;
如果(日期月<10)
ret+=“0”;
ret+=“${date.month}/”;
如果(日期<10天)
ret+=“0”;
ret+=“${date.day}”;
返回ret;
}
它应该用-
来分隔,而不是用/
您可以使用toiso8601字符串
和子字符串
DateTime _date = new DateTime.now();
String get date => _date.toIso8601String().substring(0, 10);
void set date(value) {
if (value is DateTime) {
_date = value;
} else if (value is String) {
_date = DateTime.parse(value);
}
}