簡體   English   中英

將輸入類型文本轉換為日期格式

[英]Convert input type text into date format

我有一種輸入類型文本:

 <input type="text" id="policyholder-dob" name="policyholder-dob" />

我想以 mm/dd/yyyy 格式在此字段中鍵入數字:如 01/01/2014 這是我的 js 代碼,但它不起作用,我犯了什么錯誤?

function dateFormatter(date) {
    var formattedDate = date.getDate() 
        + '/' + (date.getMonth() + 1) + '/' + date.getFullYear();
    return formattedDate;
}

var nextduedate = $("#policyholder-dob").val();

var dateFormatDate = nextduedate.slice(0, 2);
var dateFormatMonth = nextduedate.slice(2, 4);
var dateFormatYear = nextduedate.slice(4, 8);
var totalFormat = dateFormatMonth + '/' + dateFormatDate + '/' + dateFormatYear;
var againNewDate = new Date(totalFormat);
againNewDate.setDate(againNewDate.getDate() + 1);
var todaydate = dateFormatter(againNewDate);

$("#policyholder-dob").prop("value", todaydate);

任何幫助將不勝感激。

值得慶幸的是,您的輸入始終采用以下格式:

mm/dd/yyyy

所以可以通過自定義函數將其轉換為Date對象,例如:

function stringToDate(str){
    var date = str.split("/"),
        m = date[0],
        d = date[1],
        y = date[2],
        temp = [];
    temp.push(y,m,d);
    return (new Date(temp.join("-"))).toUTCString();
}

或者:

function stringToDate(str){
    var date = str.split("/"),
        m = date[0],
        d = date[1],
        y = date[2];
    return (new Date(y + "-" + m + "-" + d)).toUTCString();
}

等等..

調用它很容易:

stringToDate("12/27/1963");

它將返回正確的 GMT 時間戳(這樣您的本地時區不會影響日期(EST -5,導致它是 26 日)):

Fri, 27 Dec 1963 00:00:00 GMT //Late december

例子

有多種方法可以實現這一點,這是其中之一。

我建議使用moment.js進行日期操作。 如果你試圖給一個月加 1,你就會陷入一個痛苦的世界。 當月份是 12 月而您的月份是 13 時會發生什么。 讓圖書館為您處理所有這些令人頭疼的問題。 您可以使用從 val 中提取的字符串創建您的時刻日期。 你子串或解析。

var d = moment('01/31/2014');                 // creates a date of Jan 31st, 2014
var duration = moment.duration({'days' : 1}); // creates a duration object for 1 day
d.add(duration);                              // add duration to date
alert(d.format('MM/DD/YYYY'));                // alerts 02/01/2014

這是一個展示它的小提琴。

暫無
暫無

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

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