Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在dart中减去返回3位数日的月份(例如:347/12/2019)_Flutter_Dart - Fatal编程技术网

Flutter 在dart中减去返回3位数日的月份(例如:347/12/2019)

Flutter 在dart中减去返回3位数日的月份(例如:347/12/2019),flutter,dart,Flutter,Dart,如果我试图使用上面提到的代码获取上个月的日期,我得到的是类似于347/12/2019的日期,而不是13/12/2019 DateTime _startDate = DateTime.now(); DateTime _endDate = DateTime.now().add(Duration(days: 7)); DateTime Date=DateTime.now(); Future datePicker(BuildContext context) async { f

如果我试图使用上面提到的代码获取上个月的日期,我得到的是类似于347/12/2019的日期,而不是13/12/2019

  DateTime _startDate = DateTime.now();
  DateTime _endDate = DateTime.now().add(Duration(days: 7));
  DateTime Date=DateTime.now();

  Future datePicker(BuildContext context) async {

    final List<DateTime> picked = await DateRagePicker.showDatePicker(
        context: context,
        initialFirstDate: _startDate,
        initialLastDate: _endDate,
        firstDate: new DateTime(DateTime.now().year - 50),
        lastDate: new DateTime(DateTime.now().year + 50),
    );
    if (picked != null && picked.length == 2) {
      setState(() {
        _startDate = picked[0];
        _endDate = picked[1];
      });
    }

  }

如果您想做的是在今天的月份之前获得一个月的时间,那么这很好

DateTime now=DateTime.now();
DateTime pastMonthFromNow=日期时间(now.year,now.month-1,now.day);
打印(从现在开始);

您已经完成了所有正确的操作,但是需要在
setState()
中进行一些小的调整。按如下所示更换设置状态

setState(() {
     _startDate=new DateTime(_startDate.year, _startDate.month - 1, _startDate.day);
    _endDate=DateTime.now();
    Navigator.pop(context);
});

检查此处的要点

这是否回答了您的问题@Gokul Sundaramoorthy,你到底想做什么?@AdamStrauss yes尝试过这种方法,对于这种方法,我也得到了同样的结果output@sudo_kaizen我正在使用DateRangePicker,在这个屏幕中,我被放置了一个选项来选择最近30天的数据,为此,我正在使用提到的代码检索startingDate;DateTime _startDate=新的日期时间(date.year,date.month-1,date.day)工作正常。请在这里提供您的完整代码,以便了解问题。您是否获得相同的3位数日期?上面的代码片段可以正常工作。请检查这里的要点:是的,我仍然得到3位数的日期,在控制台中它返回正确的日期,如果我在任何小部件中显示该值,我得到3位数date@GokulSundaramoorthy可能是因为在命名变量时不遵循dart惯例,而是使用大写而不是小写。只是saying@FederickJonathan我认为这可能不是问题?@GokulSundaramoorthy分享你使用过的插件
setState(() {
     _startDate=new DateTime(_startDate.year, _startDate.month - 1, _startDate.day);
    _endDate=DateTime.now();
    Navigator.pop(context);
});