Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DatePicker onChange 需要得到 format 后的值 #1104

Closed
zinkey opened this issue Mar 2, 2016 · 11 comments
Closed

DatePicker onChange 需要得到 format 后的值 #1104

zinkey opened this issue Mar 2, 2016 · 11 comments

Comments

@zinkey
Copy link
Contributor

zinkey commented Mar 2, 2016

现在的 DatePick onChange 只能得到 Date 类型的值,要是想得到 format 后的值还需要自己再用第三款库进行 format,这样就没有办法保证跟组件 format 一样的值。

是否可以:

  1. onChange 添加 format 后的 String
  2. 提供 Date 到 String 的 format 方法
@afc163
Copy link
Member

afc163 commented Mar 2, 2016

返回原生 Date 对象的初衷是想要去掉 https://github.com/yiminghe/gregorian-calendar/ 的影响,让大家可以选用 moment 这样的库二次处理,也方便后续可能的底层重构。

现在看来确实有些麻烦,1.0 之后改为和 http://ant.design/components/calendar/#api 一样的方式,统一返回 GregorianCalendar 对象好了。

返回 String 会很不方便,因为无法直接比较和操作。

@zinkey
Copy link
Contributor Author

zinkey commented Mar 2, 2016

好像不用修改也可以,现在是这样做的:

{
    onChange: function(date){
        var GregorianCalendarFormat = require('gregorian-calendar-format');
        var GregorianCalendar = require('gregorian-calendar');
        var gregorianCalendar = new GregorianCalendar(this.props.locale || require('gregorian-calendar/lib/locale/zh_CN'));
        var df = new GregorianCalendarFormat(this.props.format || 'yyyy-MM-dd');
        gregorianCalendar.setTime(date);
        var dateString = df.format(gregorianCalendar);
        console.log(dateString)
    }
}

@afc163
Copy link
Member

afc163 commented Mar 2, 2016

目前也可以直接用 Date 原生方法来得到 String 。

date.toLocaleDateString()

@liuchaofeng1230
Copy link

我用的timepicker,也有这样的需求,希望得到输入框中的字符串

@afc163
Copy link
Member

afc163 commented Mar 2, 2016

@zinkey
Copy link
Contributor Author

zinkey commented Mar 3, 2016

date.toLocaleDateString() 肯定不行啊,这个跟输入框的字符串不一致。

@liekkas
Copy link
Contributor

liekkas commented Mar 4, 2016

+1

@afc163
Copy link
Member

afc163 commented Mar 4, 2016

先补充第二个参数如何?

onChange(date, text) {
}

@zinkey
Copy link
Contributor Author

zinkey commented Mar 4, 2016

@hotoo
Copy link
Contributor

hotoo commented Mar 21, 2016

原生的 input[type=date] 的日期类型输入框是不允许修改 format 的。

  • 显示的部分,默认使用本地格式(浏览器或系统设置)
  • 提交的值都是 ISO 8601 标准格式。

@lock
Copy link

lock bot commented May 6, 2018

This thread has been automatically locked because it has not had recent activity. Please open a new issue for related bugs and link to relevant comments in this thread.

@lock lock bot locked as resolved and limited conversation to collaborators May 6, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants