如何在javascript中格式化数据库datetime?

如何在javascript中格式化数据库datetime?,javascript,jquery,Javascript,Jquery,我有一个从SQLServer数据库表获取的日期时间值: 2016-08-16T17:00:00Z 使用javascript,我想将日期格式化如下: 16/08/2016 17:00:00 我使用了以下代码: $scope.FormatDate = function (value) { if (value !== null && typeof (value) !== 'undefined') { var date = new Date(v

我有一个从SQLServer数据库表获取的日期时间值:

2016-08-16T17:00:00Z
使用javascript,我想将日期格式化如下:

16/08/2016 17:00:00
我使用了以下代码:

$scope.FormatDate = function (value) {
        if (value !== null && typeof (value) !== 'undefined') {
            var date = new Date(value);
            var returnStr = date.getDate() + "/" + date.getMonth() + 1 + "/" + date.getFullYear();
            return returnStr;
        } else {
            return value;
        }
    }
示例资源的结果是:

17/71/2016
我希望您的帮助得到输出结果:“16/08/2016 17:00:00”

试试这个

function formatDate(date) 
    {
      var hours = date.getHours();
      var minutes = date.getMinutes();
      var seconds = date.getSeconds();


      minutes = minutes < 10 ? '0'+minutes : minutes;
      seconds = seconds < 10 ? '0'+seconds : seconds;
      var strTime = hours + ':' + minutes + ':' +seconds ;
      return  date.getMonth()+1 + "/" +  date.getDate() + "/" + date.getFullYear() + "  " + strTime;

     }
函数格式日期(日期)
{
var hours=date.getHours();
var minutes=date.getMinutes();
var seconds=date.getSeconds();
分钟=分钟<10?'0'+分钟:分钟;
秒=秒<10?'0'+秒:秒;
var strTime=hours+':'+分钟+':'+秒;
返回日期.getMonth()+1+“/”+date.getDate()+“/”+date.getFullYear()+“+strTime;
}
试试这个

function formatDate(date) 
    {
      var hours = date.getHours();
      var minutes = date.getMinutes();
      var seconds = date.getSeconds();


      minutes = minutes < 10 ? '0'+minutes : minutes;
      seconds = seconds < 10 ? '0'+seconds : seconds;
      var strTime = hours + ':' + minutes + ':' +seconds ;
      return  date.getMonth()+1 + "/" +  date.getDate() + "/" + date.getFullYear() + "  " + strTime;

     }
函数格式日期(日期)
{
var hours=date.getHours();
var minutes=date.getMinutes();
var seconds=date.getSeconds();
分钟=分钟<10?'0'+分钟:分钟;
秒=秒<10?'0'+秒:秒;
var strTime=hours+':'+分钟+':'+秒;
返回日期.getMonth()+1+“/”+date.getDate()+“/”+date.getFullYear()+“+strTime;
}

通过实现一些逻辑,您可以使用此库根据需要格式化日期

只需使用函数参数并使用力矩即可

例如:

const date = moment("2016-08-16T17:00:00Z").date();
const month = moment("2016-08-16T17:00:00Z").month();
const hour = moment("2016-08-16T17:00:00Z").hour();
const year = moment("2016-08-16T17:00:00Z").year();
const minute = moment("2016-08-16T17:00:00Z").minute();
const sec = moment("2016-08-16T17:00:00Z").second();
// implementing some logic
console.log('' + date + '/' + month + '/' + year + ' ' + hour + ':' + minute + ':' + sec);
这是小提琴:

通过实现一些逻辑,您可以使用此库根据需要格式化日期

只需使用函数参数并使用力矩即可

例如:

const date = moment("2016-08-16T17:00:00Z").date();
const month = moment("2016-08-16T17:00:00Z").month();
const hour = moment("2016-08-16T17:00:00Z").hour();
const year = moment("2016-08-16T17:00:00Z").year();
const minute = moment("2016-08-16T17:00:00Z").minute();
const sec = moment("2016-08-16T17:00:00Z").second();
// implementing some logic
console.log('' + date + '/' + month + '/' + year + ' ' + hour + ':' + minute + ':' + sec);
这是小提琴:

如果您只想对其进行格式化,则不需要创建实际的日期对象,您可以使用正则表达式进行简单的字符串替换,以获取各个部分,如以下简单演示所示:

var value=“2016-08-16T17:00:00Z”;

log(value.replace(/(\d{4})-(\d\d)-(\d\d)T([^Z]+)Z/,“$3/$2/$1$4”)如果您只想对其进行格式化,则不需要创建实际的日期对象,您可以使用正则表达式进行简单的字符串替换,以获取各个部分,如以下简单演示所示:

var value=“2016-08-16T17:00:00Z”;
log(value.replace(/(\d{4})-(\d\d)-(\d\d)T([^Z]+)Z/,“$3/$2/$1$4”)另一种解决方案:

var parsed=Date.parse(“2016-08-16T17:00:00Z”),
日期=新日期(已解析),
day=日期。getUTCDate(),
月份=日期。getUTCMonth()+1,
年份=日期。getUTCFullYear(),
小时=日期。getUTCHours(),
分钟=日期。getUTCMinutes(),
秒=date.getUTCSeconds(),
dateStr=“”;
天=天<10?“0”+天:天;
月=月<10?“0”+月份:月份;
小时=小时<10?“0”+小时:小时;
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
dateStr=天+“/”+月+“/”+年+“+小时+”:“+分钟+”:“+秒;
console.log(dateStr)另一种解决方案:

var parsed=Date.parse(“2016-08-16T17:00:00Z”),
日期=新日期(已解析),
day=日期。getUTCDate(),
月份=日期。getUTCMonth()+1,
年份=日期。getUTCFullYear(),
小时=日期。getUTCHours(),
分钟=日期。getUTCMinutes(),
秒=date.getUTCSeconds(),
dateStr=“”;
天=天<10?“0”+天:天;
月=月<10?“0”+月份:月份;
小时=小时<10?“0”+小时:小时;
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
dateStr=天+“/”+月+“/”+年+“+小时+”:“+分钟+”:“+秒;

console.log(dateStr)我已经试过了。结果没有成功。你能再检查一下小提琴吗?我试过了。结果没有成功。你能再检查一下小提琴吗?这并不是我想要的结果,但它可以解决我目前的问题。无论如何,我已经将其标记为我的解决方案。“这不是我想要的结果”-您明确要求的结果是
16/08/2016 17:00:00
,这正是我的代码产生的结果。我只是指您修复它的方式:顺便说一句,在你的代码中,这个月之所以显示为
71
,是因为
…/“+date.getMonth()+1…
进行了字符串连接-在连接之前,你需要向月份添加1,这就像添加括号一样简单:
…/“+(date.getMonth()+1)+…
。因为时区问题,你得到了17天,在我看来,当一行字符串替换完成任务时,这不值得担心。这不是我想要的结果,但它可以解决我当前的问题。无论如何,我已经将其标记为我的解决方案。“这不是我想要的结果”-您明确要求的结果是
16/08/2016 17:00:00
,这正是我的代码产生的结果。我只是指您修复它的方式:顺便说一句,在你的代码中,这个月之所以显示为
71
,是因为
…/“+date.getMonth()+1…
进行了字符串连接-在连接之前,你需要向月份添加1,这就像添加括号一样简单:
…/“+(date.getMonth()+1)+…
。由于时区问题,您将这一天定为17天,在我看来,当一行字符串替换完成任务时,不值得担心。当我单击“运行代码片段”时,我得到的结果是
“8/17/2016 3:00:00 AM”
。您可以通过以下方式控制您想要的结果:var dateStr=date.getDate()+1+“/”+date.getMonth()“/”+date.getFullYear()+”+date.toLocaleTimeString();当我单击“运行代码片段”时,我得到的结果是
“8/17/2016 3:00:00 AM”
。您可以通过以下命令控制想要的结果:var dateStr=date.getDate()+1+“/”+date.getMonth()+“/”+date.getFullYear()+“+date.toLocaleTimeString();