我的日期是这个星期一,即2010年1月9日
我现在想将其转换为
1/9/2010 mm / dd / yyyy
我试图这样做
var startDate = "Monday, January 9, 2010";
var convertedStartDate = new Date(startDate);
var month = convertedStartDate.getMonth() + 1
var day = convertedStartDate.getDay();
var year = convertedStartDate.getFullYear();
var shortStartDate = month + "/" + day + "/" + year;
然而,它必须认为日期是以不同的格式,因为白天返回1而不是9。
答案 0 :(得分:47)
getDay()
方法返回一个数字来表示星期几(0 =太阳,1 =星期一,... 6 =星期六)。使用getDate()
返回月中某天的数字:
var day = convertedStartDate.getDate();
如果您愿意,可以尝试将自定义格式函数添加到Date
对象的原型中:
Date.prototype.formatMMDDYYYY = function(){
return (this.getMonth() + 1) +
"/" + this.getDate() +
"/" + this.getFullYear();
}
执行此操作后,您可以在 formatMMDDYYY()
对象的任何实例上调用Date
。当然,这只是一个非常具体的例子,如果你真的需要它,你可以编写一个基于格式化字符串的泛型格式化函数,有点像java的SimpleDateeFormat(http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html)
(切线:Date
对象总是让我感到困惑...... getYear()
vs getFullYear()
,getDate()
vs getDay()
,getDate()
范围从1..31,但是getMonth()
来自0..11
这是一团糟,我总是需要偷看。 http://www.w3schools.com/jsref/jsref_obj_date.asp)
答案 1 :(得分:20)
你走了:
(new Date()).toLocaleDateString('en-US');
那就是它!!
您可以在任何日期对象上使用它
让我们说..你有一个名为" currentDate"
的对象var currentDate = new Date(); //use your date here
currentDate.toLocaleDateString('en-US'); // "en-US" gives date in US Format - mm/dd/yy
(或)
如果您想要本地格式,那么
currentDate.toLocaleDateString(); // gives date in local Format
答案 2 :(得分:4)
var d = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)");
document.getElementById("demo").innerHTML = d.toLocaleDateString();
答案 3 :(得分:1)
date.toLocaleDateString('en-US')
效果很好。以下是有关它的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
答案 4 :(得分:1)
JavaScript因处理日期不佳而臭名昭着。如果您只是像这样简单地附上日期,那么您可能会受到一些影响:
var startDate = "Monday, January 9, 2010";
var convertedStartDate = new Date(startDate);
var month = convertedStartDate.getMonth() + 1
var day = convertedStartDate.getDay();
var year = convertedStartDate.getFullYear();
var shortStartDate = month + "/" + day + "/" + year;
你应该使用Moment.js来处理这种情况。日期有大量的内置格式,您可以手动指定它们,而不会有添加日期时间偏移或格式与预期不同的风险。
例如:
moment('01/01/2001').format('L');
将导致' 01/01/1001'
答案 5 :(得分:1)
我希望在 type='time' 字段中显示日期。
正常转换会跳过零,表单字段不显示值,并在控制台中提示格式需要为 yyyy-mm-dd 的错误。
因此,我添加了一个小语句 (check)?(true):(false) 如下:
makeShortDate=(date)=>{
yy=date.getFullYear()
mm=date.getMonth()
dd=date.getDate()
shortDate=`${yy}-${(mm<10)?0:''}${mm+1}-${(dd<10)?0:''}${dd}`;
return shortDate;
}
答案 6 :(得分:0)
您可以使用我的date-shortcode软件包轻松完成此操作:
const dateShortcode = require('date-shortcode')
var startDate = 'Monday, January 9, 2010'
dateShortcode.parse('{M/D/YYYY}', startDate)
//=> '1/9/2010'
答案 7 :(得分:0)
晚些时候参加聚会,toLocaleDateString()
将删除日期和月份中的前导0,因此我们会得到类似“ 1/9/1970”的信息,在我看来这并不完美。要获得正确的格式MM/DD/YYYY
,我们可以使用类似以下内容的方法:
new Date(dateString).toLocaleDateString('en-US', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
})
答案 8 :(得分:-1)
我能够用:
做到这一点var dateTest = new Date("04/04/2013");
dateTest.toLocaleString().substring(0,dateTest.toLocaleString().indexOf(' '))
04/04/2013仅用于测试,替换为您的日期对象。
答案 9 :(得分:-7)
试试这个:
new Date().toLocaleFormat("%x");