как показать доб в dd-мм-гггг в javascript? - PullRequest
0 голосов
/ 05 ноября 2018

как показать dob в дд-мм-гггг в javascript? Я получаю данные с сервера в миллисекундах или длинном значении. Поэтому я использовал moment, чтобы показать 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 

поэтому я не могу отправить правильные данные на сервер. Пожалуйста, предложите, как показать DOB в DD-MMM-YYYY и отправить значение в миллисекундах вот мой код http://plnkr.co/edit/1VOQAH6Jk65QNNU2hYpN?p=preview

1 Ответ

0 голосов
/ 06 ноября 2018

Если ваше входное значение действительно точно так, как показано здесь, строка , содержащая значение, основанное на эпохе 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 лет. ; -)


Тем не менее, я не уверен, почему у вас есть дата рождения в миллисекундах для начала. Я склонен согласиться с комментарием Тима МакКейба по вашему вопросу. Дни рождения не должны храниться с такой точностью, или назначаться на любое время или корректироваться по UTC или любому часовому поясу. Вместо -2208988800000 сохраните значение, например 1900-01-01. Используйте любой тип 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'
...