【问题标题】:How to validate date entry on android?如何验证android上的日期输入?
【发布时间】:2015-03-01 01:59:27
【问题描述】:

在 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;
        }
    }


}

【问题讨论】:

    标签: android validation date


    【解决方案1】:

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

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

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

        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();
    

    【讨论】:

    • Alijandro,这可能是我对 php 不太了解的地方。我认为应该在执行任何重新格式化之前验证用户输入。请发表评论。
    • 这看起来像javascript,我还没学过。我可以按原样插入此脚本还是需要修改某些元素?哪些?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多