在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;
}
}
}
答案 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();