Lấy ngày cuối cùng của tháng JS

Tôi có mã sau để lấy ngày hiện tại:

var month=new Array[12];
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";

var d = new Date[];
var curr_date;
if [d.getDate[] == 1]
{
    curr_date = d.getDate[];
}
else
{
    curr_date = d.getDate[] - 1;
}

var curr_month = d.getMonth[] + 1; //months are zero based
var curr_year = d.getFullYear[];
var message_day = curr_year + "_" + curr_month + "_" + curr_date;
var sql_day = month[curr_month - 1].substring[0,3] + curr_date.toString[] + curr_year.toString[];

if [curr_date == "1"]
    {
         document.write[sql_day + " " + message_day];
    }

Điều này rất tốt để lấy ngày hiện tại, nhưng bây giờ tôi cần lấy ngày cuối cùng của tháng trước nếu đó là đầu tháng mới.

ngay bây giờ điều này sẽ tạo ra:

Feb12012 2012_2_1

nhưng những gì tôi cần đầu ra là:

Jan312012 2012_1_31

Cảm ơn

  • javascript
  • jquery
  • date

18 hữu ích 0 bình luận 44k xem chia sẻ

answer

40

var d=new Date[]; // current date
d.setDate[1]; // going to 1st of the month
d.setHours[-1]; // going to last hour before this date even started.

bây giờ dchứa ngày cuối cùng của tháng trước. d.getMonth[]d.getDate[]sẽ phản ánh nó.

Điều này sẽ hoạt động trên bất kỳ api ngày nào kết thúc c time.h.

40 hữu ích 4 bình luận chia sẻ

answer

29

Điều này hoàn toàn phù hợp với tôi:

var date = new Date[];
date.setDate[0];

ngày bây giờ chứa ngày cuối cùng của tháng trước.

29 hữu ích 1 bình luận chia sẻ

answer

1

var lastdayoflastmonth = new Date[];
lastdayoflastmonth.setMonth[lastdayoflastmonth.getMonth[], 0];
var firstdayoflastmonth = new Date[];
firstdayoflastmonth.setDate[1];
firstdayoflastmonth.setMonth[firstdayoflastmonth.getMonth[]-1];

1 hữu ích 0 bình luận chia sẻ

answer

0

Chỉ cần trừ một ngày trong tháng:

 var today = new Date[];
 var yesterday = new Date[].setDate[today.getDate[] - 1];

Nếu thuộc tính "date" [ngày trong tháng] là 1, thì việc đặt nó thành 0 sẽ cung cấp cho bạn một ngày đại diện cho ngày cuối cùng của tháng trước. Mã của bạn đã khá gần rồi; bạn chỉ có thể tạo một phiên bản Date mới:

 if [d.getDate[] === 1]
    curr_date = new Date[].setDate[0].getDate[];

Trên thực tế, bạn thậm chí không cần câu lệnh "if":

 curr_date = new Date[].setDate[ d.getDate[] - 1 ].getDate[];

và điều đó sẽ hoạt động cho bất kỳ ngày nào trong tháng.

0 hữu ích 1 bình luận chia sẻ

answer

0

thử cái này

function dateLastMonth[] {
            var date = new Date[];
            date.setDate[0];
            return date.getDate[].toString[] + '/' + date.getMonth[].toString[] + '/' + date.getFullYear[].toString[];
        }

0 hữu ích 0 bình luận chia sẻ

answer

-3

const monthNames = ["January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December"];                                       
let today = new Date[];
let dd = today.getDate[];

let mm = today.getMonth[]+1;
let yyyy = today.getFullYear[];
if[dd

Chủ Đề