Javascript 删除js中日期的时间部分

Javascript 删除js中日期的时间部分,javascript,Javascript,输出2019-06-13 00:00:00 let date = invoice.due_date; console.log(date); 如何删除时间而只保留日期。您可以将日期字符串转换为日期对象: d = date.split(' ')[0]; //didnt work for me 然后按照本文件中给出的格式对其进行格式化。如果您有一个字符串,则拆分将起作用 它不是字符串(例如null)或其他非字符串的内容 您的console.log显示一个日期字符串,因此它显然是一个日期对象

输出2019-06-13 00:00:00

let date = invoice.due_date;
    console.log(date);

如何删除时间而只保留日期。

您可以将日期字符串转换为
日期对象:

d = date.split(' ')[0]; //didnt work for me

然后按照本文件中给出的格式对其进行格式化。如果您有一个字符串,则拆分将起作用

它不是字符串(例如null)或其他非字符串的内容

您的console.log显示一个日期字符串,因此它显然是一个日期对象

要在任何情况下获得第二部分(日期和时间之间有空格或T),您需要获得能够持续获得正确输出的

任何toLocaleString或类似内容都依赖于实现和区域设置

let dataObj = new Date(date)
像这样:

//假设是日期对象,因为控制台日志和拆分不起作用
常量发票={
到期日:新日期(“2019-06-13 00:00:00”)//示例日期
}  
let date=发票.到期日.toISOString();
console.log(日期)
console.log(date.split(/[T|]/)[0]);//以空格或“T”作为分隔符
你可以这样试试。可以创建任何格式,如
dd-MM-yyyy
或任何格式


建议:使用
moment
库设置日期格式。

我刚刚添加了
。toLocaleDateString

方法返回一个字符串,该字符串对日期的日期部分具有语言敏感的表示形式。locales和options参数允许应用程序指定应使用其格式约定的语言,并允许自定义函数的行为

let date = invoice.due_date;
console.log(date.getDate() + '-' + (date.getMonth()+1) + '-' + date.getFullYear());
参考资料:

另一个例子: 如果您想要ISO日期,请尝试以下方法:

date=新日期('2019-06-13T02:00:00Z');
年份=日期。getFullYear();
月=日期。getMonth()+1;
dt=date.getDate();
if(dt<10){
dt='0'+dt;
}
如果(月<10){
月份='0'+月份;
}


控制台日志(年+'-'+月+'-'+dt)这是发票。到期日是字符串吗?
d=date.split(“”)[0];//对我不起作用
“是什么意思?这是完成任务的常用方式。控制台中有错误消息吗?可能是重复线程。检查我们需要知道什么对我不起作用。如果控制台出现错误,表示split不是函数,则表示invoice.due_date不是字符串。它是一个具有toString方法的对象,该方法显示您拥有的字符串。如果你没有控制台错误,那么我们需要知道什么对你不起作用抱歉,这是语法错误,它确实起作用,但它不是最可靠的方法日期他是一个日期对象,这个问题他在什么地方提到它已经是一个日期对象了吗?如果是这样,我提到的链接可以直接使用@如果他有一根绳子,分裂就行了。它不是字符串(例如null)或日期。log将显示toString,因此它是一个日期对象。这实际上是一个注释,而不是答案。再加上一点代表性,@mplungjan我甚至没有必要的声誉来否决你的投票,所以不是我否决了你。我知道这一点,并且我已经提供了我的解决方案,而不只是利用瞬间。再读一遍。这一刻只是我的建议。你的建议也会导致
2019-6-13
,因为你不会对你的答案发表评论,而不是试图询问所有重复的评论。。。“他需要ISO日期,其中可能会有一个T”@mplungjan你在假设他拥有的是一个日期对象,并对每个人进行向下投票,而他从未提及过。向下投票人:如果他有一个字符串,那么拆分就行了。它不是字符串(例如null)或日期。console.log显示了一个toString版本,因此它是一个日期对象是的,但是正如您所指出的,OP可能已经有了一个
date
对象,那么为什么要提到解析呢?仅供参考,我的评论与您的实际答案不相关,我认为您的回答很好,只是您对另一个答案的评论。我看到您的解决方案中的一个潜在问题是
toISOString()
以UTC显示。OP的原始日期(无论来自哪里)很可能是当地时间。考虑到一天中的某些时间和OP的时区,
toISOString()
的日部分可能不是他们所期望的。如果他有一个字符串,拆分就可以了。它不是字符串(例如null)或日期。console.log显示toString版本,因此它是一个日期对象。DateObject.toISOString()在不手动格式化的情况下实现了这一点为什么会被选中?在我的电脑上,toLocaleString是2019年6月13日-如果他想要2019年6月13日,那么OP是没有用的。如果这是对格式的投票,那么它就是@mplungjan的一个复制品,为
toLocaleDateString()
辩护,OP根本没有说他们“想要”什么。这个问题很低quality@Phil“我如何删除时间而只保留日期?我尝试了
“2019-06-13 00:00:00”。拆分(“”[0]
)-对我来说很明显-但是是的,它的质量很低,因为没有提到为什么这对他不起作用。如果他是说”它对我不起作用,因为我想要
2019年6月13日
,但得到了
2019年6月13日
“那么我当然错了
let date = invoice.due_date;
console.log(date.getDate() + '-' + (date.getMonth()+1) + '-' + date.getFullYear());
let date = new Date("2019-06-13T02:00:00Z").toLocaleDateString()
console.log(date)