从 Javascript 中的日期字符串中获取确切的日期

Get exact day from date string in Javascript

本文关键字:日期 获取 字符串 Javascript      更新时间:2023-09-26

我已经检查了这个SO帖子:我在哪里可以找到有关在JavaScript中格式化日期的文档?

我也调查了 http://home.clara.net/shotover/datetest.htm

我的字符串是:Mon Jun 24 2013 05:30:00 GMT+0530 (India Standard Time)

我想将其转换为dd-mm-yyyy格式。

我尝试使用:

var dateString = 'Mon Jun 24 2013 05:30:00 GMT+0530 (India Standard Time)';
var myDate = new Date(dateString);
var final_date = myDate.getDay()+"-"+(myDate.getMonth()+1)+"-"+myDate.getFullYear();

但它给我的结果是:1-6-2013

getDay()值是一周中一天的索引。
例如如果我的dateString Thu Jun 20 2013 05:30:00 GMT+0530 (India Standard Time)
它给出的输出为4-6-2013

如何获得适当的"天"值?

PS:我尝试使用.toLocaleString()并从中创建新的日期对象。但它给出了相同的结果。

要获取月份中的某天,请使用getDate()

var final_date = myDate.getDate()+"-"+(myDate.getMonth()+1)+"-"+myDate.getFullYear();

W3 学校建议只构建一周中的几天数组并使用它:

var d=new Date();
var weekday=new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
var n = weekday[d.getDay()];

不是超级优雅,但可用。

var dateString = 'Mon Jun 24 2013 05:30:00 GMT+0530 (India Standard Time)';
var myDate = new Date(dateString);
var final_date = myDate.getDate()+"-"+(myDate.getMonth()+1)+"-"+myDate.getFullYear();

将 getDay(( 替换为 getDate((。

以上将返回每个日期部分的本地日期,如果您需要通用时间,请使用 UTC 变体。

我认为您将不得不获取天数数组并使用从getDay()方法接收的索引来使用它。

要在给定日期获得所需的格式,将在 moment.js 实现。单衬解决方案是

import moment from "moment";
const date = new Date();
const finalDate = moment(date).format("DD-MM-YYYY")