将momentjs日期对象格式更改为另一种格式

时间:2017-10-24 19:12:48

标签: javascript date momentjs

我需要将from itertools import product l1, l2 = [1, 2, 3], ['a', 'b'] output = list(product(l1, l2)) # [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b'), (3, 'a'), (3, 'b')] 对象更改为其他格式。例如,我以此格式moment()收到日期,我需要将其更改为'yyyy-mm-dd'。我目前正在使用这个解决方案,我想知道有更优雅的方式吗?

'yyyy mm dd'

修改

所以似乎问题不在于瞬间对象的不同。这是我的完整代码:

let dateValue = moment(moment(value, 'YYYY-MM-DD').format('YYYY MM DD'), 'YYYY MM DD');

更改日期输入值时,我得到class EditRelation extends Component { constructor(props) { super(props); const { validFrom, validTo } = props.relationMember; this.state = { validFrom: moment(validFrom, 'YYYY MM DD'), validTo: moment(validTo, 'YYYY MM DD'), } this.handleChange = this.handleChange.bind(this); } handleChange(e) { const { id, type, value } = e.target; e.preventDefault(); if (type == 'date') { const dateValue = moment(value, 'YYYY-MM-DD'); if (id == 'validTo' && dateValue < moment()) { return; } this.setState({ [id]: dateValue }); } else { this.setState({ [id]: value }); } }; render() { const { validFrom, validTo } = this.state; return ( <form onSubmit={this.handleSubmit} ref={(form) => { this.form = form; }}> <Label for="validFrom"><FormattedMessage id="RELATION_EDIT_MODAL.ACTIVE_FROM" /></Label> <Input type="date" name="validFrom" id="validFrom" value={validFrom.format('YYYY-MM-DD')} onChange={this.handleChange} /> <Label for="validTo"><FormattedMessage id="RELATION_EDIT_MODAL.ACTIVE_TIL" /></Label> <Input type="date" name="validTo" id="validTo" value={validTo.format('YYYY-MM-DD')} onChange={this.handleChange} /> </form> ); } } 我认为这是因为时刻对象格式不同,但似乎并非如此。

4 个答案:

答案 0 :(得分:1)

在准备好将日期输出为类似字符串之前,您不需要指定格式。这是超级冗余的:

moment(moment(value, 'YYYY-MM-DD').format('YYYY MM DD'), 'YYYY MM DD')

因为您正在使用原始对象 - moment(value, 'YYYY-MM-DD') - 将其转换为具有.format()的字符串,并从该字符串创建相同的时刻对象。只需使用:

即可获得与之相同的对象
 let dateValue = moment(value, 'YYYY-MM-DD')

您只需要等到必须打印字符串或执行其他需要特定格式的操作,然后调用:

dateValue.format('YYYY MM DD')

答案 1 :(得分:0)

基本上,最好不使用模块,因为它显示了你的解决问题的能力,你会更有信心。你可以使用for循环来做到这一点:

var date = '1999-03-10'

for(let i = 0; i < date.length; i++)
    if (date[i] == "-")
        date[i] = " "

console.log (date)

答案 2 :(得分:0)

    let parsedDate = moment('2014-02-22', 'YYYY-MM-DD');
    console.log('parsedDate', parsedDate); // moment object

    let dateInNewFormat = parsedDate.format('YYYY MM DD');
    console.log('dateInNewFormat', dateInNewFormat); // date string in new format

答案 3 :(得分:0)

const value = '2017-10-24'
const date = moment(value).format('YYYY MM DD')
//2017 10 24