簡體   English   中英

如何在javascript中的dd-mm-yyyy中顯示dob?

[英]how to show dob in dd-mm-yyyy in javascript?

如何在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或任何時區。 而不是-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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM