【问题标题】:javascript date format yyyy-mm-dd HH:MM:ss [duplicate]javascript日期格式yyyy-mm-dd HH:MM:ss [重复]
【发布时间】:2020-05-07 18:32:10
【问题描述】:

我遇到了 javascript 日期格式的问题,所有日期都采用这种格式 yyyy-mm-dd HH:MM:ss

我的代码:

var currentdate = new Date();
var prevdate = new Date();
var firstdate = new Date();

prevdate.setTime(currentdate.getTime() - (30 * 60 * 1000));
firstdate.setTime(currentdate.getTime() + (30 * 60 * 1000));

var current = currentdate.toLocaleTimeString(); 
var previous = prevdate.toLocaleTimeString();      
var first = firstdate.toLocaleTimeString();      

控制台数据

console.log(previous);   //10:28:24 PM
console.log(current);    //10:58:24 PM
console.log(first);      //11:28:24 PM


我试试这个,我怎么能通过previousfirst日期

var Currentdate=dateFormat(new Date(), "yyyy-mm-dd HH:MM:ss");
console.log("Currentdate");  //2020-05-07 22:58:11

预期输出日期格式:yyyy-mm-dd HH:MM:ss

previous date: 2020-05-07 22:28:11   // date before 30min
current date:  2020-05-07 22:58:11   // current date 
first date:    2020-05-07 23:28:11   // date after 30min

我该怎么办?谁能帮忙?

【问题讨论】:

  • 您为什么认为 Locale时间字符串会包含日期?
  • 我不使用 AMPM 显示日期,即 LocaleTimeString 我使用 @jonrsharpe
  • 这并不能真正回答我的问题。
  • 对不起,我不明白你的意思@jonsharpe
  • 我很惊讶找到这种方法有多难:const timeZone = 'America/New_York'; const dateString = new Date(someDate).toLocaleString('se-SE', { timeZone }); console.log({ dateString });

标签: javascript date datetime date-format date-parsing


【解决方案1】:

使用toLocaleString 而不是toLocaleTimeString

【讨论】:

【解决方案2】:

您应该改用currentdate.toLocaleString(),如toLocaleTimeString() 返回具有此日期时间部分的语言敏感表示的字符串

toLocaleString

toLocaleTimeString

【讨论】:

    【解决方案3】:

    您好,请尝试以下功能:

    function getTime(){
        var date = new Date();
        console.log(GetFormattedDate(date));
    }
    
    
    
    function GetFormattedDate(date) {
        var month = ("0" + (date.getMonth() + 1)).slice(-2);
        var day  = ("0" + (date.getDate())).slice(-2);
        var year = date.getFullYear();
        var hour =  ("0" + (date.getHours())).slice(-2);
        var min =  ("0" + (date.getMinutes())).slice(-2);
        var seg = ("0" + (date.getSeconds())).slice(-2);
        return year + "-" + month + "-" + day + " " + hour + ":" +  min + ":" + seg;
    }
    

    在你的情况下

    function getTime(){
        var date = new Date();
    
        var currentdate = new Date();
        var prevdate = new Date();
        var firstdate = new Date();
    
        prevdate.setTime(currentdate.getTime() - (30 * 60 * 1000));
        firstdate.setTime(currentdate.getTime() + (30 * 60 * 1000));
    
    
        console.log(GetFormattedDate(prevdate));
        console.log(GetFormattedDate(currentdate));
        console.log(GetFormattedDate(firstdate));
    }
    
    
    
    function GetFormattedDate(date) {
        var month = ("0" + (date.getMonth() + 1)).slice(-2);
        var day  = ("0" + (date.getDate())).slice(-2);
        var year = date.getFullYear();
        var hour =  ("0" + (date.getHours())).slice(-2);
        var min =  ("0" + (date.getMinutes())).slice(-2);
        var seg = ("0" + (date.getSeconds())).slice(-2);
        return year + "-" + month + "-" + day + " " + hour + ":" +  min + ":" + seg;
    }
    

    问候

    【讨论】:

    • 他们显示current date 我怎么能通过previous datafirst date@cristopher
    • 嗨,我根据您的情况编辑了回复
    • 好的,我试试这个@Cristopher
    • 我还要问一件事,我应该如何在getTime 函数@Cristopher 之外从console.log(GetFormattedDate(prevdate)) 获得价值
    • 不需要使用getTime()函数,只要传递日期变量或赋值给新变量即可调用GetFormattedDate()
    【解决方案4】:

    你需要使用toLocaleString

    var currentdate = new Date();
    var prevdate = new Date();
    var firstdate = new Date();
    
    prevdate.setTime(currentdate.getTime() - (30 * 60 * 1000));
    firstdate.setTime(currentdate.getTime() + (30 * 60 * 1000));
    
    var options = { hour12: false };
    
    var current = currentdate.toLocaleString('en-US', options);
    var previous = prevdate.toLocaleString('en-US', options);      
    var first = firstdate.toLocaleString('en-US', options);
    current = current.replace(/\//g, '-');
    previous = previous.replace(/\//g, '-');
    first = first.replace(/\//g, '-');
    
    console.log(`current: ${current}`);
    console.log(`previous: ${previous}`);
    console.log(`first: ${first}`);

    【讨论】:

    • 谢谢,但我怎样才能从日期中删除 / 而不是 - 格式 5-7-2020, 23:42:18 @Sifat
    • 请立即查看。我已经更新了我的答案。如果有帮助,请将其作为正确答案。 @adnankhan
    猜你喜欢
    • 2014-09-07
    • 2012-05-05
    • 2013-03-18
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多