Tìm kiếm một hàm như this trong ColdFusion, cho phép tôi hiển thị ngày tháng là "10 phút trước" hoặc "2 ngày trước" hoặc "một tháng trước".Ngày tương đối trong ColdFusion
14
A
Trả lời
10
Mặc dù về cơ bản không khác so với udf, tôi thích this guy's approach. Không cao được thử nghiệm, nhưng bạn cũng có thể làm một cái gì đó như thế này:
Sửa Bạn đã không đề cập đến một phiên bản, vì vậy tôi cho rằng CF8
<cffunction name="relativeDate" returnType="string" access="public" output="false">
<cfargument name="theDate" type="date">
<cfset var x = "" />
<cfset var diff = "" />
<cfset var result = "unknown" />
<cfset var dateNow = now() />
<cfset var codes = [ "yyyy", "m", "ww", "d", "h", "n", "s" ] />
<cfset var names = [ "year", "month", "week", "day", "hour", "minute", "second" ] />
<cfif dateCompare(arguments.theDate, now()) gt 0>
<!--- replace with other code to handle future dates ....--->
<cfthrow message="Future date handling not implemented">
</cfif>
<!--- check each date period ...--->
<cfloop from="1" to="#arrayLen(codes)#" index="x">
<cfset diff = abs(dateDiff(codes[x], arguments.theDate, dateNow)) />
<!--- this is the greatest date period --->
<cfif diff gt 0 >
<cfif diff gt 1>
<cfset result = "about "& diff &" "& names[x] &"s ago" />
<cfelseif names[x] eq "hour">
<cfset result = "about an "& names[x] &" ago" />
<cfelse>
<cfset result = "about a "& names[x] &" ago" />
</cfif>
<cfbreak>
</cfif>
</cfloop>
<cfreturn result />
</cffunction>
5
Bạn có thể thử udf này từ cflib.org: http://cflib.org/udf/ago
Các vấn đề liên quan
- 1. Chèn ngày giờ trong MSSQL từ Coldfusion
- 2. Định dạng ngày tương đối
- 3. cfqueryparam với nhà điều hành tương tự trong Coldfusion
- 4. Coldfusion/PHP Khả năng tương thích
- 5. Tính toán ngày tương đối bằng php sử dụng strtotime()
- 6. NSDate - Đặt một ngày trong tương lai
- 7. Có một Coldfusion tương đương với PHP cho include_once không?
- 8. Ngoại lệ ngày trong truy vấn Coldfusion trong cfc và mySQL
- 9. Coldfusion có hỗ trợ các đối số động không?
- 10. Làm cách nào để hiển thị các trình duyệt chéo ngày tương đối đến tuyệt đối?
- 11. Làm cách nào để tạo ngày tương đối/xấp xỉ trong Perl?
- 12. ie8 ngày) tương thích (lỗi
- 13. ColdFusion IsImageFile không thành công đối với tệp jpg
- 14. Lint cho ColdFusion
- 15. Tạo trang tải xuống trong ColdFusion 8
- 16. Tắt các ngày trong tương lai trong jQuery UI Datepicker
- 17. Coldfusion Security
- 18. Lấy tên mẫu trong ColdFusion 10
- 19. (ColdFusion) So sánh hai ngày, sử dụng kết quả để xác định nội dung hiển thị
- 20. HMAC SHA1 ColdFusion
- 21. Thêm ngày trong LINQ vào đối tượng
- 22. Tạo đối tượng ngày ISO trong javascript
- 23. Ngày GWT tương đương với java.util.Calendar
- 24. Làm cách nào để phân tích cú pháp các ngày tương đối với Perl?
- 25. Tính tương đối filepath
- 26. php nhận thời gian ngày trong tương lai
- 27. Có một ngày tương đương PHP() trong javascript/jquery không?
- 28. Tỷ trọng tương đối
- 29. Lấy gốc tương đối trong Global.Asax
- 30. Tính tương đối trong các toán tử
tại sao bạn cần khai báo 'var x'? –
Đây là một biến vòng lặp cục bộ của hàm, vì vậy nó phải là var/local scoped. – Leigh