gpt4 book ai didi

javascript - 如何在javascript中以dd-mm-yyyy显示dob?

转载 作者:行者123 更新时间:2023-12-01 01:32:15 25 4
gpt4 key购买 nike

如何在 javascript 中以 dd-mm-yyyy 显示 dob ?我以毫秒或长值从服务器获取数据。所以我使用 moment 以 DD-MMM-YYYY 格式显示 DOB ..有编辑 DOB 的选项,如果未以毫秒或长值更改到服务器,我还想发送更新值或相同的值。

我从服务器获取这个值

var x = '-2208988800000'
var d = new Date(moment(new Date(parseInt(x)).toUTCString()).format('DD-MMM-YYYY'));

但是当我尝试将 dob 值发送到服务器而不像这样更改 DOB 时向服务器发送长值

var x2 = moment(new Date(d).toUTCString()).format('x');

//X2 should give same value of x

所以我无法向服务器发送正确的数据。请建议如何在 DD-MMM-YYYY 中显示 DOB 并以毫秒为单位发送值这是我的代码 http://plnkr.co/edit/1VOQAH6Jk65QNNU2hYpN?p=preview

最佳答案

假设您的输入值确实如此处所示,一个字符串,其中包含基于 Unix 纪元(以毫秒为单位)的值,那么您可以执行以下操作:

var x = '-2208988800000';
var m = moment.utc(x, 'x')
var s = m.format('DD-MMM-YYYY'); //=> '01-Jan-1900'

您可以像这样转换回原始字符串:

var x = m.format('x');  //=> '-2208988800000'

如果您有一个数字而不是字符串,那么它将是:

var x = -2208988800000;
var m = moment.utc(x);
var s = m.format('DD-MMM-YYYY'); //=> '01-Jan-1900'

您可以使用 valueOf 函数转换回原始数字,或强制转换为数字:

var x = m.valueOf();   //=> -2208988800000
var x = +m; // shorthand (same result)

您已经 118 岁了。 ;-)

<小时/>

也就是说,我不知道为什么你的生日是以毫秒为单位的。我倾向于同意 Tim MacCabe 在你的问题下的评论。出生日期不应以如此精确的方式存储,也不应分配给任何时间或调整为 UTC 或任何时区。存储诸如 1900-01-01 之类的值,而不是 -2208988800000。使用数据库支持的任何 DATE 类型,并将其作为 ISO8601 格式的字符串传输 ("1900-01-01")。如果需要,您可以重新格式化它,如下所示:

var x = '1900-01-01';
var m = moment(x);
var s = m.format('DD-MMM-YYYY'); //=> '01-Jan-1900'

返回:

var x = m.format('YYYY-MM-DD');  //=> '1900-01-01'

关于javascript - 如何在javascript中以dd-mm-yyyy显示dob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53161449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com