当我们在getMonth()
对象上调用getDate()
和date
时,我们会获得single digit number
。
例如:
对于january
,它会显示1
,但我需要将其显示为01
。怎么做?
答案 0 :(得分:664)
("0" + this.getDate()).slice(-2)
代表日期,类似:
("0" + (this.getMonth() + 1)).slice(-2)
这个月。
答案 1 :(得分:74)
如果你想要一个像“YYYY-MM-DDTHH:mm:ss”这样的格式,那么这可能会更快:
var date = new Date().toISOString().substr(0, 19);
// toISOString() will give you YYYY-MM-DDTHH:mm:ss.sssZ
或常用的MySQL日期时间格式“YYYY-MM-DD HH:mm:ss”:
var date2 = new Date().toISOString().substr(0, 19).replace('T', ' ');
我希望这会有所帮助
答案 2 :(得分:38)
月份示例:
function getMonth(date) {
var month = date.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
您还可以使用以下功能扩展Date
对象:
Date.prototype.getMonthFormatted = function() {
var month = this.getMonth() + 1;
return month < 10 ? '0' + month : '' + month; // ('' + month) for string result
}
答案 3 :(得分:17)
最好的方法是创建自己的简单格式化程序(如下所示):
getDate()
返回当月的日期(从1-31开始)
getMonth()
返回月份(从0到11)&lt; 从零开始,0 = 1月,11 = 12月
getFullYear()
返回年份(四位数)&lt; 请勿使用getYear()
function formatDateToString(date){
// 01, 02, 03, ... 29, 30, 31
var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
// 01, 02, 03, ... 10, 11, 12
var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
// 1970, 1971, ... 2015, 2016, ...
var yyyy = date.getFullYear();
// create the format you want
return (dd + "-" + MM + "-" + yyyy);
}
答案 4 :(得分:7)
以下用于转换db2日期格式 即使用三元算子的YYYY-MM-DD
var currentDate = new Date();
var twoDigitMonth=((currentDate.getMonth()+1)>=10)? (currentDate.getMonth()+1) : '0' + (currentDate.getMonth()+1);
var twoDigitDate=((currentDate.getDate())>=10)? (currentDate.getDate()) : '0' + (currentDate.getDate());
var createdDateTo = currentDate.getFullYear() + "-" + twoDigitMonth + "-" + twoDigitDate;
alert(createdDateTo);
答案 5 :(得分:7)
为什么不使用padStart
?
var d = new Date();
d.getMonth().toString().padStart(2, "0");
d.getDate().toString().padStart(2, "0");
即使月份或日期小于10,也会返回2位数字,例如9月6日将分别返回09年和06年。
答案 6 :(得分:6)
function monthFormated(date) {
//If date is not passed, get current date
if(!date)
date = new Date();
month = date.getMonth();
// if month 2 digits (9+1 = 10) don't add 0 in front
return month < 9 ? "0" + (month+1) : month+1;
}
答案 7 :(得分:5)
function monthFormated() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
答案 8 :(得分:5)
另一个例子,几乎是一个班轮。
var date = new Date();
console.log( (date.getMonth() < 9 ? '0': '') + (date.getMonth()+1) );
答案 9 :(得分:4)
这是我的解决方案:
function leadingZero(value) {
if (value < 10) {
return "0" + value.toString();
}
return value.toString();
}
var targetDate = new Date();
targetDate.setDate(targetDate.getDate());
var dd = targetDate.getDate();
var mm = targetDate.getMonth() + 1;
var yyyy = targetDate.getFullYear();
var dateCurrent = leadingZero(mm) + "/" + leadingZero(dd) + "/" + yyyy;
答案 10 :(得分:3)
使用Moment.js可以这样做:
moment(new Date(2017, 1, 1)).format('DD') // day
moment(new Date(2017, 1, 1)).format('MM') // month
答案 11 :(得分:3)
不是答案,但这里是我如何在变量
中获取我需要的日期格式function setDateZero(date){
return date < 10 ? '0' + date : date;
}
var curr_date = ev.date.getDate();
var curr_month = ev.date.getMonth() + 1;
var curr_year = ev.date.getFullYear();
var thisDate = curr_year+"-"+setDateZero(curr_month)+"-"+setDateZero(curr_date);
希望这有帮助!
答案 12 :(得分:2)
来自MDN的提示:
function date_locale(thisDate, locale) {
if (locale == undefined)
locale = 'fr-FR';
// set your default country above (yes, I'm french !)
// then the default format is "dd/mm/YYY"
if (thisDate == undefined) {
var d = new Date();
} else {
var d = new Date(thisDate);
}
return d.toLocaleDateString(locale);
}
var thisDate = date_locale();
var dayN = thisDate.slice(0, 2);
var monthN = thisDate.slice(3, 5);
console.log(dayN);
console.log(monthN);
答案 13 :(得分:2)
const today = new Date().toISOString()
const fullDate = today.split('T')[0];
console.log(fullDate) //prints YYYY-MM-DD
答案 14 :(得分:2)
new Date().getMonth()
方法将月份返回为数字(0-11)
使用此功能可以轻松获得正确的月份号。
function monthFormatted() {
var date = new Date(),
month = date.getMonth();
return month+1 < 10 ? ("0" + month) : month;
}
答案 15 :(得分:1)
这里的答案很有帮助,但我需要的不仅仅是:不仅是月,日,月,小时和秒,表示默认名称。
有趣的是,虽然预先提供了&#34; 0&#34;以上所有都需要,&#34; + 1&#34;只需要一个月,而不是其他人。
例如:
("0" + (d.getMonth() + 1)).slice(-2) // Note: +1 is needed
("0" + (d.getHours())).slice(-2) // Note: +1 is not needed
答案 16 :(得分:1)
也许是更现代的方法,使用“padStart”
const now = new Date();
const day = `${now.getDate()}`.padStart(2, '0');
const month = `${now.getMonth()}`.padStart(2, '0');
const year = now.getFullYear();
然后您可以根据需要构建为模板字符串:
`${day}/${month}/${year}`
答案 17 :(得分:1)
我会这样做:
var d = new Date('January 13, 2000');
var s = d.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' });
console.log(s); // prints 01/13/2000
答案 18 :(得分:1)
另一个版本https://jsfiddle.net/ivos/zcLxo8oy/1/,希望有用。
var dt = new Date(2016,5,1); // just for the test
var separator = '.';
var strDate = (dt.getFullYear() + separator + (dt.getMonth() + 1) + separator + dt.getDate());
// end of setup
strDate = strDate.replace(/(\b\d{1}\b)/g, "0$1")
答案 19 :(得分:1)
function GetDateAndTime(dt) {
var arr = new Array(dt.getDate(), dt.getMonth(), dt.getFullYear(),dt.getHours(),dt.getMinutes(),dt.getSeconds());
for(var i=0;i<arr.length;i++) {
if(arr[i].toString().length == 1) arr[i] = "0" + arr[i];
}
return arr[0] + "." + arr[1] + "." + arr[2] + " " + arr[3] + ":" + arr[4] + ":" + arr[5];
}
答案 20 :(得分:0)
我的解决方案:
function addLeadingChars(string, nrOfChars, leadingChar) {
string = string + '';
return Array(Math.max(0, (nrOfChars || 2) - string.length + 1)).join(leadingChar || '0') + string;
}
用法:
var
date = new Date(),
month = addLeadingChars(date.getMonth() + 1),
day = addLeadingChars(date.getDate());
jsfiddle:http://jsfiddle.net/8xy4Q/1/
答案 21 :(得分:0)
var net = require('net')
function zeroFill(i) {
return (i < 10 ? '0' : '') + i
}
function now () {
var d = new Date()
return d.getFullYear() + '-'
+ zeroFill(d.getMonth() + 1) + '-'
+ zeroFill(d.getDate()) + ' '
+ zeroFill(d.getHours()) + ':'
+ zeroFill(d.getMinutes())
}
var server = net.createServer(function (socket) {
socket.end(now() + '\n')
})
server.listen(Number(process.argv[2]))
答案 22 :(得分:0)
如果您希望getDate()函数将日期返回为01而不是1,这是它的代码。 假设今天的日期是2018年11月11日
var today = new Date();
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + today.getDate();
console.log(today); //Output: 2018-11-1
today = today.getFullYear()+ "-" + (today.getMonth() + 1) + "-" + ((today.getDate() < 10 ? '0' : '') + today.getDate());
console.log(today); //Output: 2018-11-01
答案 23 :(得分:0)
我想做这样的事情,这就是我所做的
p.s。我知道上面有正确的答案,但只想在这里添加我自己的东西
const todayIs = async () =>{
const now = new Date();
var today = now.getFullYear()+'-';
if(now.getMonth() < 10)
today += '0'+now.getMonth()+'-';
else
today += now.getMonth()+'-';
if(now.getDay() < 10)
today += '0'+now.getDay();
else
today += now.getDay();
return today;
}
答案 24 :(得分:0)
如果我可能想花点时间来找:
YYYYMMDD
今天,并与:
const dateDocumentID = new Date()
.toISOString()
.substr(0, 10)
.replace(/-/g, '');
答案 25 :(得分:0)
如果您选择的小于10 ,则无需为此创建新函数。只需将变量分配到方括号中,然后使用三元运算符返回即可。
(m = new Date().getMonth() + 1) < 10 ? `0${m}` : `${m}`
答案 26 :(得分:0)
currentDate(){
var today = new Date();
var dateTime = today.getFullYear()+'-'+
((today.getMonth()+1)<10?("0"+(today.getMonth()+1)):(today.getMonth()+1))+'-'+
(today.getDate()<10?("0"+today.getDate()):today.getDate())+'T'+
(today.getHours()<10?("0"+today.getHours()):today.getHours())+ ":" +
(today.getMinutes()<10?("0"+today.getMinutes()):today.getMinutes())+ ":" +
(today.getSeconds()<10?("0"+today.getSeconds()):today.getSeconds());
return dateTime;
},
答案 27 :(得分:0)
我建议您使用另一个名为Moment https://momentjs.com/的库
这样,您可以直接设置日期格式,而无需执行其他工作
const date = moment().format('YYYY-MM-DD')
// date: '2020-01-04'
请确保您也导入了时刻,以便能够使用它。
yarn add moment
# to add the dependency
import moment from 'moment'
// import this at the top of the file you want to use it in
希望这会有所帮助:D
答案 28 :(得分:0)
$("body").delegate("select[name='package_title']", "change", function() {
var price = $(this).find(':selected').attr('data-price');
var dadaday = $(this).find(':selected').attr('data-days');
var today = new Date();
var endDate = new Date();
endDate.setDate(today.getDate()+parseInt(dadaday));
var day = ("0" + endDate.getDate()).slice(-2)
var month = ("0" + (endDate.getMonth() + 1)).slice(-2)
var year = endDate.getFullYear();
var someFormattedDate = year+'-'+month+'-'+day;
$('#price_id').val(price);
$('#date_id').val(someFormattedDate);
});
答案 29 :(得分:0)
import { lightFormat } from 'date-fns';
lightFormat(new Date(), 'dd');
答案 30 :(得分:0)
如果月或日小于 10,简单的三元运算符可以在数字前添加“0”(假设您需要在字符串中使用此信息)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.ComponentModel;
using System.Drawing;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Wk5Ch12Exer9
{
public partial class Form1 : Form
{
String inputText = null;
// How do I decide on below number?
int[] charFrequency = new int[52];
public Form1()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
inputText = rtbInputArea.Text;
}
private void processLine(String strng)
{
if (strng.Equals(null))
return;
char[] current = strng.ToCharArray();
for (int idx = 0; idx < current.Length; idx++)
{
try
{
if (current[idx]>= 65 &&
current[idx] <= 90)
{
charFrequency[current[idx] - 65] += 1;
}
else if (current[idx] >= 97 &&
current[idx] <= 122)
{
charFrequency[current[idx] - 97 + 26] += 1;
}
}
catch (Exception)
{
}
}
}
private void button1_Click(object sender, EventArgs e)
{
StringBuilder output = new StringBuilder("");
String[] inp = inputText.Split('\n');
for (int idx = 0; idx < inp.Length; idx++)
{
processLine(inp[idx]);
}
for (int ins = 0; ins < 26; ins++)
{
if (charFrequency[ins] != 0)
{
output.Append("Frequency of " +
(char)(ins + 65) + " is: " +
charFrequency[ins] + "\n");
}
}
for (int ins = 26; ins < charFrequency.Length; ins++)
{
if (charFrequency[ins] != 0)
{
outputAppend("Frequency of " +
(char)(ins + 97 - 26) +
" is: " +
charFrequency[ins] + "\n");
}
}
rtbOutputArea.Text = output.ToString();
}
private void btnClear_Click(object sender, EventArgs e)
{
rtbInputArea.Text = "";
rtbOutputArea_TextChanged.Text = "";
charFrequency = new int[52];
}
}
}