如何在android上验证日期条目?

时间:2015-03-01 01:59:28

标签: android validation date

在Android上,日期显示为mm / dd / yyyy;哪个会好的,但它没有验证。我假设android实际上以不同于显示的格式发送日期。我无法弄清楚格式是什么。如果我知道我认为可以验证它。目前输入可以是字段规定的m(m)-d(d)-yyyy,但我也需要接受android datepicker格式,所以它也可以接受m(m)/ d(d)/ yyyy

这是验证员类的验证功能

     function isInvalidDate($field, $msg) {
        $value = $this->getValue($field);
        $valueDate = str_replace("/","-",$value);
        $value_arr = explode('-', $valueDate);
        if (checkdate($value_arr[0], $value_arr[1], $value_arr[2])) {
            return true;
        } else {
            $this->addError($field, $value, $msg);
            return false;
        }
    }


}

1 个答案:

答案 0 :(得分:0)

您似乎正在进行服务器/客户端通信,客户端是Android应用程序。 服务器接受来自客户端的发布数据,您可以定义服务器可以自己接收的日期格式。

在客户端将数据发布到服务器之前,客户端(Android应用程序)应将日期格式转换为服务器接受的格式。

例如,服务器只接受日期格式mm/dd/yyyy,在Android应用向服务器发送数据之前,它应该在mm/dd/yyyy中设置的日期之后将结果格式化为DatePickerDialog

    Calendar calendar = Calendar.getInstance();
    DatePickerDialog datePickerDialog = new DatePickerDialog(this, new OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
            String dateString = String.format("%02d", monthOfYear) + "/" +
                String.format("%02d", dayOfMonth) + "/" + year;
            // TODO: send dateString to the server
        }
    }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
    datePickerDialog.show();