Định dạng ngày giờ


7

Tôi có rất nhiều ngày trong cột đầu tiên trong định dạng đầu ra bằng cách IFTTT:

August 23, 2010 at 11:01PM

Có cách nào để chúng được định dạng theo cách mà sau đó tôi có thể sử dụng để tính toán ngày và thời gian không?

Lý tưởng nhất là chức năng sẽ chỉ chiếm một cột thêm.


Tôi không tin có một chức năng tích hợp sẽ định dạng ngày theo cách bạn muốn. Google Drivecó sẵn Script Editor( Tools- Script Editor) bạn có thể sử dụng để viết một tập lệnh tùy chỉnh để làm những gì bạn muốn. Bạn có thể gửi một câu hỏi trên StackOverflownếu bạn gặp khó khăn.

Câu trả lời:


9

Tôi sử dụng công thức này để chuyển đổi các giá trị thời gian ngày IFTTT phun ra thành định dạng hữu ích:

=VALUE(SUBSTITUTE(A1, " at ", " "))

Trong đó A1 là ô chứa chuỗi ngày

Điều này cung cấp cho bạn một số thập phân mà bạn có thể định dạng là "Ngày giờ".


2
Công TIMEVALUEthức chỉ tồn tại trong Google Sheets mới.
Jacob Jan Tuinstra 24/07/2015

@JacobJanTuinstra bạn có biết đó cũng là trường hợp DATEVALUEkhông?
jamesmstone

2
@jamesmstone DATEVALUEcông thức tồn tại trong cả hai phiên bản.
Jacob Jan Tuinstra

2

Hàm tùy chỉnh sau đây sẽ chuyển đổi ký hiệu ngày chuỗi thành ký hiệu ngày:

function myDate(range) {
  var output = [];  
  for(var i=0, iLen=range.length; i<iLen; i++) {
    var rSplit = range[i][0].split(" "), corr = 0;
    if(rSplit[4].substring(5,7) == "PM") {
      corr = 10;
    }   
    var month = parseInt(new Date(Date.parse(rSplit[0]+"1,2013")).getMonth());
    var day = parseInt(rSplit[1].replace(/,/g, ""));
    var year = parseInt(rSplit[2]);
    var hour = parseInt(rSplit[4].substring(0,2))+corr;
    var min = parseInt(rSplit[4].substring(3,5),10);    
    var nDate = new Date(year, month, day, hour, min);
    output.push([nDate]);
  } 
  return output;
}

Ghi chú

Sửa chữa được thực hiện để chiếm AM/PM. Không sửa cho GMT. Thêm tập lệnh này thông qua Toolsmenu trong bảng tính và chọn Script editor. Lưu kịch bản và bạn đã sẵn sàng để đi !!

Sử dụng

myDate(A1:A4)

Thí dụ

Tôi đã tạo một tệp ví dụ cho bạn: chuỗi ngày đến ngày


Tuy nhiên, tôi tin rằng corrnên bằng nhau 12vì chỉnh sửa sẽ ít hơn 6 ký tự, tôi không thể thay đổi nó
jamesmstone

Sau khi kiểm tra mã. Tôi nhận thấy thời gian 11:09PM( bất kể năm nào ) nó luôn luôn trở lại 1/1/1970 11:00:00. Vì vậy, ví dụ August 23, 2010 at 11:09PMlợi nhuận 1/1/1970 11:00:00 bạn có bất cứ ý tưởng tại sao?
jamesmstone

1
Tôi đã cập nhật bảng ví dụ của
@Jacob

@jamesmstone xem mã sửa đổi, nó hoạt động với ví dụ trong bảng tính. Tôi đã buộc parseInt(text, 10)phải tính số thập phân. Các corrđược đặt ở corr=10vì điều này sẽ mang lại cùng một lúc. Tôi đã không tính đến các múi giờ khác nhau.
Jacob Jan Tuinstra

Cảm ơn. Câu hỏi nhanh là chức năng parseInt()giống như javascript parseInt(). Google macro có sử dụng javascript không?
jamesmstone

-3

Bạn cũng có thể sử dụng một trong các tập lệnh định dạng hiển thị, điều này sẽ giữ các số cơ bản giống như các định dạng hiển thị thông thường và như vậy sẽ không làm hỏng bất kỳ phép tính số ngày / giờ nào.

do đó, một tập lệnh tìm kiếm 'Định dạng' và lấy một trong các số và ngày, định dạng được sử dụng giống như biến thể = Văn bản (, "") mà không cần phải được chuyển đổi trong trang tính.

MMMM d, yyyy tại h: mma

Dành cho:

23 tháng 8 năm 2010 lúc 11:01 PM

Để biết các tùy chọn định dạng khác, hãy xem: http://msdn.microsoft.com/en-us/l Library / 8kb3ddd4 (v = vs.110) .aspx


3
Tại sao một người truy cập Microsoft Developer Network để biết các định dạng trong Bảng tính Google?
ale
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.